public async Task ChangePassword()

in app/Controllers/AccountController.cs [72:99]


        public async Task<IActionResult> ChangePassword(ChangePassword changePassword)
        {
            if (!ModelState.IsValid)
                return View(changePassword);

            var user = await _userManager.GetUserAsync(HttpContext.User);
            if (user == null)
                return NotFound();

            var changePassResult = await _userManager.ChangePasswordAsync(user, changePassword.CurrentPassword, changePassword.NewPassword);

            if (!changePassResult.Succeeded)
            {
                foreach (var error in changePassResult.Errors)
                    ModelState.AddModelError(error.Code, error.Description);
                return View(changePassword);
            }

            if(user.EnforceChangePassword)
            {
                user.EnforceChangePassword = false;
                await _userManager.UpdateAsync(user);
            }

            _logger.LogInformation($"User {user.UserName} password changed.");

            return RedirectToAction("ChangePasswordConfirmation");
        }