public override Task <UserViewModel> GetUser( GetUserByIdViewModel request, ServerCallContext context) { var userId = request.UserId; _logger.LogInformation($"Getting user with ID {userId}"); if (userId < 1) { var status = new Status(StatusCode.InvalidArgument, "User ID cannot be less than 1"); throw new RpcException(status); } var user = _users.Where(x => x.Id == userId).FirstOrDefault(); if (user == null) { var status = new Status(StatusCode.NotFound, $"User with ID {userId} could not be found"); throw new RpcException(status); } var userViewModel = new UserViewModel { Id = user.Id, FirstName = user.FirstName, Surname = user.Surname, EmailAddress = user.EmailAddress, }; return(Task.FromResult(userViewModel)); }
private static async Task GetUserById(int userId, User.UserClient userServiceClient) { var jwt = await GetJwt(); var headers = new Metadata { { "Authorization", $"Bearer {jwt}" } }; var getUserByIdViewModel = new GetUserByIdViewModel { UserId = userId, }; try { var user = userServiceClient.GetUser(getUserByIdViewModel, headers); Console.WriteLine($"{user.Id} - {user.FirstName} {user.Surname} - {user.EmailAddress}"); } catch (RpcException ex) { Console.WriteLine($"{ex.Status.StatusCode} - {ex.Status.Detail}"); } }
public async Task <ActionResult> Index(GetUserByIdViewModel model) { var response = await _session.Request <GetUserByIdCommandReply>(model.GetUserByIdCommand); model.Result = response.User?.Name ?? "User Not Found"; return(View(model)); }