public void Update(int userId, ChangeCredentialsDTO changeCredentialsDTO) { var currentUser = _userRepository.GetById(userId); var currentEncryptedPassword = this._authService.GenerateEncryptedPassword(changeCredentialsDTO.CurrentPassword); Validate.EqualThan(currentUser.Password, currentEncryptedPassword, "Invalid credentials"); if ((!string.IsNullOrWhiteSpace(changeCredentialsDTO.Email)) && (changeCredentialsDTO.Email != currentUser.Email)) { this.ValidateUniqueEmail(changeCredentialsDTO.Email); currentUser.Email = changeCredentialsDTO.Email; } if (!string.IsNullOrWhiteSpace(changeCredentialsDTO.Name)) { this.ValidateUserName(changeCredentialsDTO.Name); currentUser.Name = changeCredentialsDTO.Name; } if (!string.IsNullOrWhiteSpace(changeCredentialsDTO.NewPassword)) { var newEncryptedPassword = this._authService.GenerateEncryptedPassword(changeCredentialsDTO.NewPassword); currentUser.Password = newEncryptedPassword; } _userRepository.Update(currentUser); }
public ActionResult <LoginResultDTO> Update(ChangeCredentialsDTO changeCredentialsDTO) { try { var loggedUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); _userService.Update(loggedUserId, changeCredentialsDTO); return(NoContent()); } catch (BusinessException ex) { return(BadRequest(ex.Message)); } }