Ancestry.QueryProcessor.Service.QueryErrorHandlerAttribute.OnException C# (CSharp) Method

OnException() public method

public OnException ( System.Web.Mvc.ExceptionContext filterContext ) : void
filterContext System.Web.Mvc.ExceptionContext
return void
        public override void OnException(ExceptionContext filterContext)
        {
            if (filterContext.Exception != null)
            {
                filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                var exception = filterContext.Exception;
                var data = new List<object>();
                if (exception is AggregateException)
                {
                    data.AddRange
                    (
                        from e in ((AggregateException)exception).InnerExceptions
                        let locatedException = e as ILocatedException
                        select new
                        {
                            Message = e.Message,
                            Line = (locatedException == null ? -1 : locatedException.Line),
                            LinePos = (locatedException == null ? -1 : locatedException.LinePos)
                        }
                    );
                }
                else
                {
                    var locatedException = exception as ILocatedException;
                    data.Add
                    (
                        new
                        {
                            Message = exception.Message,
                            Line = (locatedException == null ? -1 : locatedException.Line),
                            LinePos = (locatedException == null ? -1 : locatedException.LinePos)
                        }
                    );
                }

                filterContext.Result = new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = data
                };
                filterContext.ExceptionHandled = true;
            }
            else
                base.OnException(filterContext);
        }
QueryErrorHandlerAttribute