Beispiel #1
0
        public static bool Handle404(this IEngineContext context)
        {
            var result = context.HandleError(404, "Not found.");

            context.Response.StatusCode = 404;
            return(result);
        }
Beispiel #2
0
        public object ExecuteList(IEngineContext context, IController controller, IControllerContext controllerContext)
        {
            OnPreList(controller);
            try {
                var source = context.Request.HttpMethod == "GET" ? context.Request.QueryString : context.Request.Form;
                var store  = BuildCompositeNode(source, Queryfilters, false);

                IFutureValue <long> count = null;

                Query
                .AddOrderBy(Orderbys)
                .AddQueryFilter(Queryfilters)
                .SetupPaging(PageSize)
                .AddEager(Fetches);

                var items = Query.Run(store, ref count);

                if (Query.PageSize == 0)
                {
                    controllerContext.PropertyBag["items"] = new CustomPage <T>(items, Query.Page, Convert.ToInt32(count.Value), Convert.ToInt32(count.Value));
                }
                else
                {
                    controllerContext.PropertyBag["items"] = new LazyPage <T>(items, Query.Page, Query.PageSize, count);
                }

                OnPostList(controller, items);
            } catch (Exception ex) {
                context.HandleError(500, ex);
            } finally {
                controllerContext.PropertyBag["qs"] = Query.Querystring;
                foreach (var key in Query.Querystring.Keys)
                {
                    controllerContext.PropertyBag[key] = Query.Querystring[key];
                }
            }
            return(null);
        }