public async Task <IActionResult> ChangeAccount(ChangeAccountModel model) { if (!ModelState.IsValid || model is null) { return(View()); } var user = await UserManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{UserManager.GetUserId(User)}'.")); } var changeNameResult = await UserManager.SetUserNameAsync(user, model.Username); if (!changeNameResult.Succeeded) { foreach (var error in changeNameResult.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } var changeEmailResult = await UserManager.SetEmailAsync(user, model.Email); if (!changeEmailResult.Succeeded) { foreach (var error in changeEmailResult.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // Checks if user also requested a password change if (!String.IsNullOrEmpty(model.NewPassword)) { var changePasswordResult = await UserManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); if (!changePasswordResult.Succeeded) { foreach (var error in changePasswordResult.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } // Returns the view if any of the previous changes experienced an error if (ModelState.ErrorCount > 0) { ChangeAccountModel viewModel = new ChangeAccountModel { Username = user.UserName, Email = user.Email }; return(View(viewModel)); } await _signInManager.RefreshSignInAsync(user); _logger.LogInformation("User changed their password successfully."); return(RedirectToAction("Index", new { statusmessage = "Your password has been changed." })); }
public async Task <IActionResult> ChangeAccount() { var user = await UserManager.GetUserAsync(User); if (user is null) { return(NotFound($"Unable to load user with ID '{UserManager.GetUserId(User)}'.")); } ChangeAccountModel viewModel = new ChangeAccountModel { Username = user.UserName, Email = user.Email }; return(View(viewModel)); }
public ActionResult Change(ChangeAccountModel model) { if (ModelState.IsValid) { UserUpdateStatus status = UserService.UpdateAccount(model.Fullname, model.Email); if (status == UserUpdateStatus.Updated) { ShowMessage((L)"Account updated"); return(Change()); } else { ShowMessage((L)"No such user account", HtmlMessageType.Error); } } return(View(model)); }