public async Task <IActionResult> ResetPassword([FromBody] ResetPasswordViewModel model) { if (ModelState.IsValid) { var user = await userManager.FindByEmailAsync(model.Email); if (user != null) { var result = await userManager.ResetPasswordAsync(user, Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(model.Token)), model.Password); if (result.Succeeded) { await signInManager.RefreshSignInAsync(user); await this.UpdateIsOneTimePasswordChanged(user); return(StatusCode(200, new { response = ApiMessages.PasswordReset() })); } return(StatusCode(494, new { response = result.Errors.Select(x => x.Description) })); } return(StatusCode(404, new { response = ApiMessages.RecordNotFound() })); } return(StatusCode(400, new { response = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage) })); }