public async Task <IActionResult> OnPostAsync() { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } RequirePassword = await _userManager.HasPasswordAsync(user); if (RequirePassword) { if (!await _userManager.CheckPasswordAsync(user, Input.Password)) { ModelState.AddModelError(string.Empty, "Incorrect password."); return(Page()); } } var result = await _userManager.DeleteAsync(user); var userId = await _userManager.GetUserIdAsync(user); // delet dingo personal data too, this is purposely seperated from authentication db bool deletedDingoData = await accountHandler.DeleteAccount(userId); if (!result.Succeeded || deletedDingoData is false) { throw new InvalidOperationException($"Unexpected error occurred deleting user with ID '{userId}'."); } await _signInManager.SignOutAsync(); _logger.LogInformation("User with ID '{UserId}' deleted themselves.", userId); return(Redirect("~/")); }
public bool DeleteCustomerAccount(int accountId) { return(_accountHandler.DeleteAccount(accountId)); }