示例#1
0
        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));
        }
示例#2
0
        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}");
            }
        }
示例#3
0
        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));
        }