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); }
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); }
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; }