Beispiel #1
0
        protected virtual PagedObject <TEntity> GetPageList(GridPagerObject filter, IQueryable <TEntity> source)
        {
            var result = source;

            //去掉值为空的查询条
            if (filter.QueryModel != null && filter.QueryModel.Items.Count > 0)
            {
                filter.QueryModel.Items.RemoveAll(x => x.Value == null || string.IsNullOrEmpty(x.Value.ToString()));
            }

            if (filter.QueryModel != null && filter.QueryModel.Items.Count > 0)
            {
                result = result.Where(filter.QueryModel);
            }
            if (!string.IsNullOrWhiteSpace(filter.SortCloumnName))
            {
                result = result.OrderBy(filter.SortCloumnName, (string.IsNullOrEmpty(filter.SortOrder) ? true : filter.SortOrder.ToLower() == "asc"));
            }
            else if (string.IsNullOrWhiteSpace(filter.SortCloumnName) && filter.OrderModel != null && filter.OrderModel.Items.Count > 0)
            {
                var orderModel = filter.OrderModel.Items.FirstOrDefault();
                result = result.OrderBy(orderModel.SortCloumnName, (string.IsNullOrEmpty(orderModel.SortOrder) ? true : orderModel.SortOrder.ToLower() == "asc"));
                filter.OrderModel.Items.RemoveAt(0);
            }
            //判断是多列排序条件
            if (filter.OrderModel != null && filter.OrderModel.Items.Count > 0)
            {
                foreach (var item in filter.OrderModel.Items)
                {
                    result = result.ThenBy(item.SortCloumnName, (string.IsNullOrEmpty(item.SortOrder) ? true : item.SortOrder.ToLower() == "asc"));
                }
            }

            var totalCount = result.Count();

            result = result.Skip((filter.CurrentPage - 1) * filter.RowsPerPage).Take(filter.RowsPerPage);

            return(new PagedObject <TEntity>()
            {
                ObjectList = result.ToList(),
                TotalCount = totalCount,
                GridPager = filter
            });
        }
Beispiel #2
0
 public PagedObject <TEntity> GetPageList(GridPagerObject filter, IQueryable <TEntity> source, Expression <Func <TEntity, bool> > expression)
 {
     throw new NotImplementedException();
 }
Beispiel #3
0
 public PagedObject <TEntity> GetPageList(GridPagerObject filter, string includes)
 {
     throw new NotImplementedException();
 }
Beispiel #4
0
 public PagedObject <TEntity> GetPageList(IQueryable <TEntity> source, GridPagerObject filter)
 {
     throw new NotImplementedException();
 }