public async Task<ActionResult> DeleteUser(string id)
{
try
{
if (!ModelState.IsValid) return RedirectToAction("Index");
if (string.IsNullOrEmpty(id)) throw new Exception("Empty parameter on Users/Delete");
var user = await UserManager.FindByIdAsync(id);
if (user == null) throw new Exception("Failed to get user on Users/Delete");
var result = await UserManager.DeleteAsync(user);
if (result.Succeeded)
{
var deleteUser = _userHelper.DeleteUser(user.UserName);
if (deleteUser.Error != null) return RedirectToAction("Index");
TempData.Add("ErrorMessage", "Identity has been deleted but profile failed to be updated.");
RedirectToAction("Index");
}
ModelState.AddModelError("", result.Errors.First());
return View();
}
catch (Exception ex)
{
_errorSignaler.SignalFromCurrentContext(ex);
ViewBag.ErrorMessage = ex.Message;
return View();
}
}