protected ViewResult On404Exception(HttpException ex, int statusCode, string view)
        {
            //ex .ExceptionHandled = true;

            ErrorModel _error = new ErrorModel();

            Response.StatusCode = statusCode;
            _error = AppErrorModule.ExceptionOccurred(ex, 500);
            ViewResult res = this.View(view, statusCode);

            return(res);
            //filterContext.Result = Result;
        }
        protected override void OnException(ExceptionContext filterContext)
        {
            HttpException httpException = (HttpException)filterContext.Exception;

            int _err = httpException.GetHttpCode();

            Exception exception = filterContext.Exception;

            filterContext.ExceptionHandled = true;

            ErrorModel _error = new ErrorModel();
            //Response.StatusCode = 500;
            var routeData = new RouteData();

            routeData.Values.Add("controller", "Error");

            if (httpException == null)
            {
                routeData.Values.Add("action", "Error500");
            }
            else
            {
                switch (httpException.GetHttpCode())
                {
                // This is a forced case where ASP.NET/MVC comes through here.
                // 503 is an IIS Error - Service not available :: neither Asp.Net nad neither Mvc AND neither IIS are available.
                // However, if we invoke through .Net/MVC a throw new HttpException(503)... it should end up here.
                // Else, in web.config, there's a redirect to that page .HTML.
                case 503:
                    var _result503 = new FilePathResult("~/Error/Pages/ServiceUnavailable.html", "text/html");
                    filterContext.Result = _result503;
                    break;

                case 500:
                    _error = AppErrorModule.ExceptionOccurred(exception, 500);
                    var _result500 = this.View("~/Views/Error/Error500.cshtml", _error);
                    //var Result = this.View("Index", new HandleErrorInfo(exception,
                    //		filterContext.RouteData.Values["controller"].ToString(),
                    //		filterContext.RouteData.Values["action"].ToString()));

                    //var Result = this.View("Index", new HandleErrorInfo(exception,
                    //		filterContext.RouteData.Values["controller"].ToString(),
                    //		filterContext.RouteData.Values["action"].ToString()));

                    filterContext.Result = _result500;
                    break;
                }
            }
        }