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")); } }
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)); }