public async Task <IActionResult> SendDelete(string code) { // Redirects to index if code is null if (code == null) { return(Redirect("/")); } // Retrieves user and email and verified the correct user is signed in. User user = await _repository.GetUserAsync(User); EmailCode emailCode = await _repository.GetEmailCodeAsync(code); if (user != emailCode.User) { return(Forbid()); } // Returns message if code is no longer valid MessageViewModel model; if (emailCode.ValidUntil < DateTime.Now) { model = new MessageViewModel() { Title = "Link expired", MessageTitle = "Account deletion link expired", MessageContent = "To delete your account request another confirmation email" }; return(View("Message", model)); } // Removes account from database and signs out user user.Deleted = true; await _repository.SaveChangesAsync(); await HttpContext.SignOutAsync(); // Returns view model = new MessageViewModel() { Title = "Account deleted", MessageTitle = "Account deleted" }; return(View("Message", model)); }
public async Task <IActionResult> ResetPassword(string code, int?error) { // Retrieves email code and redirects if null EmailCode emailCode = await _repository.GetEmailCodeAsync(code); if (emailCode == null) { return(Redirect("/")); } ResetPasswordViewModel model = new ResetPasswordViewModel() { Error = error, Code = code, UserID = emailCode.UserID }; return(View(model)); }