public async Task <UserModel> Edit([FromBody] UpdateRequestModel request) { var user = _usersService.GetByEmail(request.Email); if (user == null) { throw new HttpRequestException(_errorHandler.GetMessage(ErrorMessagesEnum.AuthUserDoesNotExists)); } var validEmail = await _usersService.ValidateUser(user); if (!validEmail.Succeeded) { _errorHandler.ErrorIdentityResult(validEmail); } IdentityResult validPass = null; if (!string.IsNullOrEmpty(request.Password)) { validPass = await _usersService.ValidatePassword(user, request.Password); if (validPass.Succeeded) { user.PasswordHash = _usersService.HashPassword(user, request.Password); } else { _errorHandler.ErrorIdentityResult(validPass); } } if (validPass != null && ((!validEmail.Succeeded || request.Password == string.Empty || !validPass.Succeeded))) { throw new HttpRequestException(_errorHandler.GetMessage(ErrorMessagesEnum.AuthNotValidInformations)); } var result = await _usersService.Update(user); if (result.Succeeded) { return(user); } throw new HttpRequestException(_errorHandler.GetMessage(ErrorMessagesEnum.AuthCannotUpdate)); }