Пример #1
0
        public static string GetFiltering <T>(this KendoGridRequest request)
        {
            var finalExpression = "";

            foreach (var filterObject in request.FilterObjectWrapper.FilterObjects)
            {
                if (finalExpression.Length > 0)
                {
                    finalExpression += " " + request.FilterObjectWrapper.LogicToken + " ";
                }


                if (filterObject.IsConjugate)
                {
                    var expression1 = GetExpression <T>(filterObject.Field1, filterObject.Operator1, filterObject.Value1);
                    var expression2 = GetExpression <T>(filterObject.Field2, filterObject.Operator2, filterObject.Value2);
                    var combined    = string.Format("({0} {1} {2})", expression1, request.FilterObjectWrapper.LogicToken, expression2);
                    finalExpression += combined;
                }
                else
                {
                    var expression = GetExpression <T>(filterObject.Field1, filterObject.Operator1, filterObject.Value1);
                    finalExpression += expression;
                }
            }

            if (finalExpression.Length == 0)
            {
                return("true");
            }

            return(finalExpression);
        }
Пример #2
0
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            if (bindingContext == null)
            {
                throw new ArgumentNullException("bindingContext");
            }

            _request = controllerContext.HttpContext.Request;

            var take        = Convert.ToInt32(GetQueryStringValue("take"));
            var page        = Convert.ToInt32(GetQueryStringValue("page"));
            var skip        = Convert.ToInt32(GetQueryStringValue("skip"));
            var pageSize    = Convert.ToInt32(GetQueryStringValue("pageSize"));
            var total       = Convert.ToInt32(GetQueryStringValue("total"));
            var filterLogic = GetQueryStringValue("filter[logic]");

            var sortKeys = (from x in GetRequestKeys()
                            where x.StartsWith("sort")
                            select x).ToList();

            var filterKeys = (from x in GetRequestKeys()
                              where x.StartsWith("filter") &&
                              x != "filter[logic]"
                              select x).ToList();

            var filtering = GetFilterObjects(filterKeys, filterLogic);
            var sorting   = GetSortObjects(sortKeys);

            if (filtering.FilterObjects.Count() > 0)
            {
                total = 0;
            }

            var gridObject = new KendoGridRequest
            {
                Take                = take,
                Skip                = skip,
                Page                = page,
                PageSize            = pageSize,
                Total               = total,
                FilterObjectWrapper = filtering,
                SortObjects         = sorting
            };

            return(gridObject);
        }
Пример #3
0
        public static string GetSorting(this KendoGridRequest request)
        {
            var expression = "";

            foreach (var sortObject in request.SortObjects)
            {
                expression += sortObject.Field + " " + sortObject.Direction + ", ";
            }

            if (expression.Length < 2)
            {
                return("true");
            }

            expression = expression.Substring(0, expression.Length - 2);

            return(expression);
        }
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            if (bindingContext == null)
                throw new ArgumentNullException("bindingContext");

            _request = controllerContext.HttpContext.Request;

            var take = Convert.ToInt32(GetQueryStringValue("take"));
            var page = Convert.ToInt32(GetQueryStringValue("page"));
            var skip = Convert.ToInt32(GetQueryStringValue("skip"));
            var pageSize = Convert.ToInt32(GetQueryStringValue("pageSize"));
            var total = Convert.ToInt32(GetQueryStringValue("total"));
            var filterLogic = GetQueryStringValue("filter[logic]");

            var sortKeys = (from x in GetRequestKeys()
                            where x.StartsWith("sort")
                            select x).ToList();

            var filterKeys = (from x in GetRequestKeys()
                              where x.StartsWith("filter") &&
                                    x != "filter[logic]"
                              select x).ToList();

            var filtering = GetFilterObjects(filterKeys, filterLogic);
            var sorting = GetSortObjects(sortKeys);

            if (filtering.FilterObjects.Count() > 0) total = 0;

            var gridObject = new KendoGridRequest
            {
                Take = take,
                Skip = skip,
                Page = page,
                PageSize = pageSize,
                Total = total,
                FilterObjectWrapper = filtering,
                SortObjects = sorting
            };

            return gridObject;
        }