コード例 #1
0
        public async Task <IActionResult> ChangePassword(ChangePasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userHelper.GetUserByEmailAsync(model.UserName);

                if (user == null)
                {
                    return(NotFound());
                }

                string oldPassword = model.OldPassword;
                string newPassword = model.NewPassword;


                var checkPassword = await _userHelper.CheckPasswordAsync(user, oldPassword);

                if (!checkPassword)
                {
                    ModelState.AddModelError(string.Empty, "Your Current password is invalid, please try again");
                    return(View(model));
                }

                var result = await _userHelper.ChangePasswordAsync(user, oldPassword, newPassword);

                if (!result.Succeeded)
                {
                    ModelState.AddModelError(string.Empty, "Unable to change password, try again later");
                    return(View(model));
                }

                @ViewBag.Message = "Password changed successfully";
                return(View(model));
            }

            return(View(model));
        }