Пример #1
0
 public void Error(string controller, string method, Exception ex, string message, string username, Dictionary <string, string> parameters = null)
 {
     _loggerRepository.Error(controller, method, ex, message, username, parameters);
 }
Пример #2
0
        protected void Application_Error(object sender, EventArgs e)
        {
            _iLoggerRepository = DependencyResolver.Current.GetService <ILoggerRepository>();
            var exMessage = new StringBuilder();

            try
            {
                var httpContext       = ((MaintainContactsMain)sender).Context;
                var currentController = string.Empty;
                var currentAction     = string.Empty;

                if (httpContext != null && httpContext.Error != null)
                {
                    var currentRouteData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(httpContext));

                    if (currentRouteData != null)
                    {
                        if (!String.IsNullOrEmpty(Convert.ToString(currentRouteData.Values["controller"])))
                        {
                            currentController = Convert.ToString(currentRouteData.Values["controller"]);
                        }

                        if (!String.IsNullOrEmpty(Convert.ToString(currentRouteData.Values["action"])))
                        {
                            currentAction = Convert.ToString(currentRouteData.Values["action"]);
                        }
                    }

                    exMessage.Append(string.Concat("Controller:", currentController, Environment.NewLine));
                    exMessage.Append(string.Concat("Action:", currentAction, Environment.NewLine));

                    _iLoggerRepository.Error(Convert.ToString(exMessage), httpContext.Error);
                }

                var ex = Server.GetLastError();

                if (ex != null)
                {
                    exMessage.Clear();
                    exMessage.Append(string.Concat("Start GetLastError", Environment.NewLine));
                    _iLoggerRepository.Error(Convert.ToString(exMessage), ex);
                }

                httpContext.ClearError();
                httpContext.Response.Clear();
                httpContext.Response.StatusCode             = ex is HttpException ? ((HttpException)ex).GetHttpCode() : 500;
                httpContext.Response.TrySkipIisCustomErrors = true;

                var errorController = new ErrorController();
                var errorRouteData  = new RouteData();
                var action          = "Error";

                if (ex is HttpException)
                {
                    var httpEx = ex as HttpException;

                    switch (httpEx.GetHttpCode())
                    {
                    case 404:
                        action = "PageNotFound";
                        break;

                    default:
                        action = "Error";
                        break;
                    }
                }

                errorRouteData.Values["controller"] = "Error";
                errorRouteData.Values["action"]     = action;
                ((IController)errorController).Execute(new RequestContext(new HttpContextWrapper(httpContext), errorRouteData));
            }
            catch (Exception ex)
            {
                exMessage.Clear();
                exMessage.Append(string.Concat("Exception Application_Error", Environment.NewLine));
                _iLoggerRepository.Error(Convert.ToString(exMessage), ex);
            }
        }