コード例 #1
0
        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);
        }
コード例 #2
0
 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));
     }
 }