public async Task <IActionResult> EditPassword(EditPasswordViewModel newPasswrd) { if (ModelState.IsValid) { var user = await _user.FindByNameAsync(User.Identity.Name); var passwordsMatch = await _user.CheckPasswordAsync(user, newPasswrd.OldPassword); if (passwordsMatch) { var passwordHasher = HttpContext.RequestServices .GetService(typeof(IPasswordHasher <User>)) as IPasswordHasher <User>; user.PasswordHash = passwordHasher.HashPassword(user, newPasswrd.NewPassword); var res = await _user.UpdateAsync(user); if (res.Succeeded) { await _notify.AboutSecurityAsync(SecurityReason.PasswordUpdated, user.Email); return(View("Index", new Tuple <ProfileViewModel, PassportViewModel>( _profile.ConstructView(user), _passport.ConstructView(user)))); } } ModelState.AddModelError(string.Empty, "Incorrect current password!"); } return(View("Index", new Tuple <ProfileViewModel, PassportViewModel>( _profile.ConstructView(_user.WithProfile(User.Identity.Name)), _passport.ConstructView(_user.WithPassport(User.Identity.Name))))); }