public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordViewModel vm) { if (ModelState.IsValid) { var user = await userManager.FindByIdAsync(vm.UserId); if (user != null) { var result = await userManager.ChangePasswordAsync(user, vm.CurrentPassword, vm.Password); if (result.Succeeded) { await signInManager.RefreshSignInAsync(user); await this.UpdateIsOneTimePasswordChanged(user); return(StatusCode(200, new { response = ApiMessages.PasswordChanged() })); } 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) })); }