예제 #1
0
        public static IQueryable <T> ApplyDataManager <T>(this IQueryable <T> dataSource, DataManager manager, out int count, bool applySearch = false)
        {
            if (manager?.Where != null && manager.Where.Count > 0)
            {
                dataSource = dataSource.PerformWhereFilter <T>(manager.Where, string.Empty);
            }
            if (manager?.Search != null && manager.Search.Count > 0 && applySearch)
            {
                dataSource = QueryableDataOperations.PerformSearching <T>(dataSource, manager.Search);
            }
            if (manager?.Sorted != null && manager.Sorted.Count > 0)
            {
                dataSource = dataSource.PerformSorting <T>(manager.Sorted);
            }

            count = dataSource.Count();

            if (manager != null && manager.Skip != 0)
            {
                dataSource = dataSource.PerformSkip <T>(manager.Skip);
            }
            if (manager != null && manager.Take != 0)
            {
                dataSource = dataSource.PerformTake <T>(manager.Take);
            }
            return(dataSource);
        }
예제 #2
0
        public ActionResult VirtualDataSource(DataManager dm)
        {
            IQueryable <OrdersView> datasource = new NorthwindDataContext().OrdersViews;
            var count = datasource.Count();

            if (dm.Skip >= 0)//for paging
            {
                datasource = QueryableDataOperations.PerformSkip(datasource, dm.Skip);
            }
            if (dm.Take > 0)//for paging
            {
                datasource = QueryableDataOperations.PerformTake(datasource, dm.Take);
            }
            return(Json(new { result = datasource.ToList(), count = count }));
        }