public async Task <IActionResult> ChangePassword([FromBody] ChangePaswordViewModel model) { if (ModelState.IsValid) { var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); // will give the user's userId model.Id = userId; var result = await _userService.ChangePasswordAsync(model); if (result.IsSuccess) { return(Ok(result)); } return(BadRequest(result)); } return(BadRequest("Some properties are not valid")); }
public async Task <UserManagerResponse> ChangePasswordAsync(ChangePaswordViewModel model) { var user = await _userManager.FindByIdAsync(model.Id); if (user == null) { return new UserManagerResponse { IsSuccess = false, Message = "Cant find that user", } } ; if (model.NewPassword == model.OldPassword) { return new UserManagerResponse { IsSuccess = false, Message = "la contraseña debe de ser diferemte a las que has usado.", } } ; var result = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); if (result.Succeeded) { return new UserManagerResponse { Message = "Password has been Changed successfully!", IsSuccess = true, } } ; return(new UserManagerResponse { Message = "Something went wrong", IsSuccess = false, Errors = result.Errors.Select(e => e.Description), }); }