public static DataTableResponseDataModel <T> GetDataTableResponse <T>(this IQueryable <T> data, DataTableParamModel dataTableParamModel) where T : class, new() { var totalRecords = data.Count(); // annoying this, as it causes an extra evaluation.. var filters = new DataTableFiltering(); var outputProperties = DataTableTypeInfo <T> .Properties; var filteredData = filters.ApplyFiltersAndSort(dataTableParamModel, data, outputProperties); var totalDisplayRecords = filteredData.Count(); var skipped = filteredData.Skip(dataTableParamModel.DisplayStart); var page = (dataTableParamModel.DisplayLength <= 0 ? skipped : skipped.Take(dataTableParamModel.DisplayLength)).ToArray(); var result = new DataTableResponseDataModel <T> { TotalRecord = totalRecords, TotalDisplayRecord = totalDisplayRecords, Echo = dataTableParamModel.Echo, Data = page.Cast <object>().ToArray() }; return(result); }
public static DTResult <Country> GetDataFromBL(HttpContext context, List <DTColumn> columns) { DTResult <Country> dataCountry = new DTResult <Country>(); DTParameters param = DataTableCommon.SetParameters(context, columns); try { using (var db = new AnroAppEntities()) { var query = db.Countries.AsQueryable().Where(a => (a.CountryName.Contains(param.Search.Value) || param.Search.Value == null));; dataCountry = DataTableFiltering <Country> .GetResult(param, query); } } catch (Exception ex) { Console.Write(ex); } return(dataCountry); }