Esempio n. 1
0
        public async Task <IActionResult> UpdateCurrentUser([FromForm] UserUpdateFormRequestDto userUpdateDto)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest("please provide valid infomation"));
                }
                var user = await _userServices.UpdateUserProfileAsync(userUpdateDto);

                return(Ok(user));
            }
            catch (BadRequestException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (NotFoundException ex)
            {
                return(NotFound(ex.Message));
            }
            catch (UserUpdateException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogCritical($"GetCourses() Error: {ex}");
                return(StatusCode(500, "Internal Server Error"));
            }
        }
Esempio n. 2
0
        public async Task <UserDto> UpdateUserProfileAsync(UserUpdateFormRequestDto userProfileUpdateDto)
        {
            // 1. get current user
            var user = await GetCurrentUser();

            if (user == null)
            {
                throw new NotFoundException("user not found");
            }
            // 3. update user
            string avararUrl = null;

            if (userProfileUpdateDto.ProfileImage != null)
            {
                avararUrl = _storageConnectionConfig.Url + _storageConnectionConfig.AvatarContainerName + "/" + userProfileUpdateDto.ProfileImage;
            }
            user.UpdateProfile(userProfileUpdateDto.FirstName, userProfileUpdateDto.LastName, avararUrl);
            // 4. apply db change
            await _userRepository.SaveAsync();

            return(Mapper.Map <UserDto>(user));
        }