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"));
        }