Example #1
0
 /// <summary>
 ///     重写的异常处理。
 /// </summary>
 /// <param name="filterContext"></param>
 protected override void OnException(ExceptionContext filterContext)
 {
     //if the request is AJAX return JSON else view
     if (filterContext.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
     {
         filterContext.Result = new JsonResult
         {
             JsonRequestBehavior = JsonRequestBehavior.AllowGet,
             Data = new
             {
                 StatusCode = 200,
                 IsSuccess  = false,
                 Result     = filterContext.Exception.Message
             }
         };
     }
     else
     {
         var ex = filterContext.Exception ?? new Exception("no further information exists");
         filterContext.ExceptionHandled = true;
         var errorModel = new UnknownModel {
             Message = ex.Message
         };
         filterContext.Result = View("/Views/Page/Unknown.cshtml", errorModel);
     }
     filterContext.ExceptionHandled = true;
     filterContext.HttpContext.Response.Clear();
     filterContext.HttpContext.Response.StatusCode             = 500;
     filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
 }
Example #2
0
        public static void Search(string Item, out string Result)
        {
            GetCathegory(Item.ToUpper(), out string Cathegory, out string ItemForSearch);

            if (Cathegory == "System Board")
            {
                Result = JconPath.Search(ItemForSearch);
            }
            else if (Cathegory == "Jcon Path")
            {
                Result = DisplaySystemBoardSearch(ItemForSearch);
            }
            else
            {
                Result = null;
            }

            // Local Methods

            void GetCathegory(string userObject, out string cathegory, out string itemForSearch)
            {
                UnknownModel unknown = new UnknownModel();

                unknown.obj = userObject;
                UnknownValidator userValidator = new UnknownValidator();
                ValidationResult result        = userValidator.Validate(unknown);

                if (result.IsValid == false)
                {
                    foreach (ValidationFailure failure in result.Errors)
                    {
                        DataCollection.Logs.Add(failure.ErrorMessage);
                    }
                    cathegory     = "Error";
                    itemForSearch = "Error";
                }
                else
                {
                    if (unknown.obj.Contains("_"))
                    {
                        cathegory = "System Board";
                    }
                    else if (unknown.obj.Substring(0, 1) == "J")
                    {
                        cathegory = "Jcon Path";
                    }
                    else
                    {
                        cathegory = "Unknown";
                    }

                    itemForSearch = unknown.obj;
                }
            }

            string DisplaySystemBoardSearch(string item)
            {
                JconPathModel jconpath = new JconPathModel();

                jconpath.TableName = item.Substring(0, 4);
                jconpath.Column    = Convert.ToChar(item.Substring(5, 1));
                jconpath.Row       = Convert.ToByte(item.Substring(7, item.Length - 7));

                JconPathValidator pathValidator = new JconPathValidator();
                ValidationResult  pathresult    = pathValidator.Validate(jconpath);

                if (pathresult.IsValid == false)
                {
                    foreach (ValidationFailure failure in pathresult.Errors)
                    {
                        DataCollection.Logs.Add(failure.ErrorMessage);
                    }
                    return("");
                }
                else
                {
                    return(SystemBoard.Search(jconpath.TableName, jconpath.Column, jconpath.Row));
                }
            }
        }