public async Task <IActionResult> ConfirmAccountCreation(ConfirmAccountCreationViewModel model) { if (model.Code == null) { return(RedirectToAction(nameof(HomeController.Index), "Home")); } var accountReq = _context.AccountCreationRequests.SingleOrDefault(r => r.Secret == model.Code); if (accountReq != null && !accountReq.Completed && !AccountRequestExpired(accountReq)) { // create new user (var result, var user) = await CreateUser(_signInManager, _emailSender, accountReq.RequestedEmail, accountReq.RequestedEmail, model.Password, sendEmail : false, signIn : false); if (result.Succeeded) { _logger.LogInformation("User created a new account with api."); accountReq.ApplicationUserId = user.Id; accountReq.Completed = true; _context.AccountCreationRequests.Update(accountReq); _context.SaveChanges(); this.FlashSuccess("Account created"); return(RedirectToAction(nameof(HomeController.Index), "Home")); } AddErrors(result); // If we got this far, something failed, redisplay form model.User = null; return(View(model)); } this.FlashError("Invalid account code"); return(RedirectToAction(nameof(HomeController.Index), "Home")); }
public IActionResult ConfirmAccountCreation(string code) { if (code == null) { return(RedirectToAction(nameof(HomeController.Index), "Home")); } var accountReq = _context.AccountCreationRequests.SingleOrDefault(r => r.Secret == code); if (accountReq != null && !accountReq.Completed && !AccountRequestExpired(accountReq)) { var model = new ConfirmAccountCreationViewModel { Code = code }; return(View(model)); } this.FlashError("Invalid account code"); return(RedirectToAction(nameof(HomeController.Index), "Home")); }