private static DataTableResult <T> ReturnGridData <T>(DataTableParamModel requestParams, ref IQueryable <T> collection) { List <T> gridData = new List <T>(); try { //If only paging var skipCollection = collection.Skip(requestParams.iDisplayStart).Take(requestParams.iDisplayLength).ToList().AsQueryable(); ////If the sort Order is provided perform a sort on the specified column //if (requestParams.iSortingCols > 0) //{ // //var sortCollection = Sort<T>(collection, requestParams.SortOn, requestParams.SortOrd); // var sortCollection = Sort<T>(skipCollection, requestParams.SortOn, requestParams.SortOrd); // //If sort and paging // //gridData = sortCollection.Skip(requestParams.Skip).Take(requestParams.PageSize).ToList(); // gridData = sortCollection.ToList(); //} //if (requestParams.FilterField.IsNotEmpty() && requestParams.FilterOperator.IsNotEmpty() && requestParams.FilterValue.IsNotEmpty()) //{ // //var filterCollection = Filter<T>(collection, requestParams.FilterField, requestParams.FilterOperator, requestParams.FilterValue); // var filterCollection = Filter<T>(skipCollection, requestParams.FilterField, requestParams.FilterOperator, requestParams.FilterValue); // //If sort and paging // //gridData = filterCollection.Skip(requestParams.Skip).Take(requestParams.PageSize).ToList(); // gridData = filterCollection.ToList(); //} //else //{ // //If only paging // //gridData = collection.Skip(requestParams.Skip).Take(requestParams.PageSize).ToList(); // //gridData = skipCollection.ToList(); //} } catch { } return(new DataTableResult <T> { sEcho = requestParams.sEcho, aaData = gridData.Count > 0 ? gridData : collection.ToList(), iTotalRecords = collection.Count(), iTotalDisplayRecords = gridData.Count(), }); }
public static DataTableResult <T> ParseGridData <T>(IQueryable <T> collection, DataTableParamModel requestParams) { return(ReturnGridData <T>(requestParams, ref collection)); }