public async Task <IActionResult> Delete([Bind("Id")] SurveyDTO model) { try { var surveyResult = await _surveyService.GetSurveyAsync(model.Id); if (surveyResult.Succeeded) { var result = await _surveyService.DeleteSurveyAsync(model.Id); if (result.Succeeded) { ViewBag.Message = "The following survey has been deleted."; return(View("DeleteResult", result.Item)); } else { ModelState.AddModelError(string.Empty, $"Unable to delete survey. (HTTP {result.StatusCode})"); switch (result.StatusCode) { case (int)HttpStatusCode.Unauthorized: return(ReAuthenticateUser()); case (int)HttpStatusCode.Forbidden: ViewBag.Forbidden = true; break; } return(View(surveyResult.Item)); } } if (surveyResult.StatusCode == (int)HttpStatusCode.NotFound) { ModelState.AddModelError(string.Empty, $"The survey can not be found, It may have already been deleted"); ViewBag.Message = $"The survey can not be found, It may have already been deleted"; return(View("~/Views/Shared/Error.cshtml")); } } catch (AuthenticationException) { return(ReAuthenticateUser()); } catch { ViewBag.Message = "Unexpected Error"; } return(View("~/Views/Shared/Error.cshtml")); }