0
0
mirror of https://github.com/alex289/CleanArchitecture.git synced 2025-06-29 18:21:08 +00:00
CleanArchitecture/CleanArchitecture.gRPC/Contexts/UsersContext.cs
2024-12-08 22:51:08 +01:00

35 lines
1014 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CleanArchitecture.gRPC.Interfaces;
using CleanArchitecture.Proto.Users;
using CleanArchitecture.Shared.Users;
namespace CleanArchitecture.gRPC.Contexts;
public sealed class UsersContext : IUsersContext
{
private readonly UsersApi.UsersApiClient _client;
public UsersContext(UsersApi.UsersApiClient client)
{
_client = client;
}
public async Task<IEnumerable<UserViewModel>> GetUsersByIds(IEnumerable<Guid> ids)
{
var request = new GetUsersByIdsRequest();
request.Ids.AddRange(ids.Select(id => id.ToString()));
var result = await _client.GetByIdsAsync(request);
return result.Users.Select(user => new UserViewModel(
Guid.Parse(user.Id),
user.Email,
user.FirstName,
user.LastName,
string.IsNullOrWhiteSpace(user.DeletedAt) ? null : DateTimeOffset.Parse(user.DeletedAt)));
}
}