public async Task <ActionResult> AdminChangeEmail(AdminChangeEmailViewModel model) { if (model.Email == model.EmailBefore && model.UserName == model.UserNameBefore) { TempData["SaveResult"] = $"No change made for {model.UserName}."; return(RedirectToAction("Index", "Users")); } if (!ModelState.IsValid) { return(View(model)); } var entity = ctx .Users .Single(e => e.Id == model.UserId); entity.UserName = model.UserName; entity.Email = model.Email; bool success = true; try { ctx.SaveChanges(); } catch { success = false; } if (success) { TempData["SaveResult"] = $"Profile updated for {model.UserName}."; } else { TempData["SaveResult"] = $"Error updating Profile for {model.UserName}. Please retry."; } return(RedirectToAction("Index", "Users")); }
public ActionResult AdminChangeEmail(string userId) { using (var ctx = new ApplicationDbContext()) { if (ctx.Users.Count(e => e.Id == userId) == 0) { TempData["SaveResult"] = $"Error finding User. Please retry."; return(RedirectToAction("Index", "Users")); } var entity = ctx .Users .Single(e => e.Id == userId); AdminChangeEmailViewModel model = new AdminChangeEmailViewModel { UserId = entity.Id, UserNameBefore = entity.UserName, UserName = entity.UserName, EmailBefore = entity.Email, Email = entity.Email }; return(View(model)); } }
public async Task <IActionResult> ChangeEmailRequest() { AdminChangeEmailViewModel model = new AdminChangeEmailViewModel(); var currentUser = await this.CurrentUserProvider.GetCurrentUserAsync(); model.NewEmail = currentUser.Email; return(this.View(model)); }
public async Task <IActionResult> ChangeEmailRequest(AdminChangeEmailViewModel model) { try { var currentUser = await this.CurrentUserProvider.GetCurrentUserAsync(); var request = new RequestChangeEmailCommand() { UserId = currentUser.Id, NewEmail = model.NewEmail, }; request.ConfigureCallbackOptions("admin/manage/change-email", false); var requestResult = await this.Mediator.Send(request); if (requestResult.Succeeded) { this.ShowSuccessNotification("Email request has been sent successfully. Check your email for confirmation."); return(this.View()); } else { this.ShowErrorNotification("Email request has not been sent successfully."); return(this.View(model)); } } catch (ValidationException ex) { this.ModelState.ApplyValidationException(ex, true); } catch (Exception) { this.ModelState.AddModelError(string.Empty, "Change email request operation has failed."); } return(this.View(model)); }