public async Task <RequestResult <UserResponse> > Handle(PatchUserProfileRequest request, CancellationToken cancellationToken)
        {
            try
            {
                var user = await _ctx.Users.FirstOrDefaultAsync(x => x.Id == request.Id);

                if (user == null)
                {
                    _logger.LogError("user not found");
                    return(RequestResult.Error <UserResponse>());
                }

                user.UserProfile = request.ProfileContent;
                await _ctx.SaveChangesAsync();

                var updatedUser = await _ctx.Users.FirstOrDefaultAsync(x => x.Id == request.Id);

                if (updatedUser == null)
                {
                    _logger.LogError("user not found after update");
                    return(RequestResult.Error <UserResponse>());
                }

                var response = _mapper.Map <UserResponse>(updatedUser);

                return(RequestResult.Success(response));
            }
            catch (Exception ex)
            {
                _logger.LogError("Error updating user profile user", ex);
                return(RequestResult.Error <UserResponse>());
            }
        }
예제 #2
0
        public async Task <IActionResult> PatchUserProfile(PatchUserProfileRequest request)
        {
            if (request == null || string.IsNullOrWhiteSpace(request.ProfileContent))
            {
                return(BadRequest("Invalid request"));
            }

            var response = await _mediator.Send(request);

            if (response.IsSuccess)
            {
                return(Ok(response.Obj));
            }

            return(BadRequest("The user's profile could not be updated"));
        }