public async Task <IActionResult> ChangeEmail([FromForm] ChangeEmailViewModel formData) { var checkResult = await CheckUserRegisteredOkAsync(); if (checkResult != null) { return(checkResult); } // return to page if there are errors if (ModelState.IsValid == false) { return(View(nameof(ChangeEmail), formData)); } // initialize change email process var errors = await ChangeEmailService.InitiateChangeEmailAsync(formData.EmailAddress, VirtualUser); if (errors.ErrorCount > 0) { ModelState.Merge(errors); return(View(nameof(ChangeEmail), formData)); } // confirm email change link sent var changeEmailModel = new ChangeEmailStatusViewModel { OldEmail = VirtualUser.EmailAddress, NewEmail = formData.EmailAddress }; // go to pending page return(RedirectToAction(nameof(ChangeEmailPending), new { data = Encryption.EncryptModel(changeEmailModel) })); }
public async Task <IActionResult> CompleteChangeEmailAsync(string code) { var checkResult = await CheckUserRegisteredOkAsync(); if (checkResult != null) { return(checkResult); } // complete email change var errors = await ChangeEmailService.CompleteChangeEmailAsync(code, VirtualUser); if (errors.ErrorCount > 0) { // show failed reason ModelState.Merge(errors); return(View("ChangeEmailFailed")); } // show success var changeEmailCompletedModel = new ChangeEmailStatusViewModel { NewEmail = VirtualUser.EmailAddress }; return(View("ChangeEmailCompleted", changeEmailCompletedModel)); }