예제 #1
0
 public IQueryBuilder OrderBy(IQueryOrder orderBy)
 {
     if (orderBy != null && Orders.All(item => item.Field != orderBy.Field))
     {
         Orders.Add(orderBy);
     }
     return(this);
 }
예제 #2
0
        public static IQueryable <TEntity> ApplyOrder <TEntity, V>(this IQueryable <TEntity> src, IQueryOrder <TEntity, V> order) where TEntity : IDbEntity
        {
            if (order != null)
            {
                if (order.Direction == 0)
                {
                    src = src.OrderBy(order.Expression).AsQueryable();
                }
                else
                {
                    src = src.OrderByDescending(order.Expression).AsQueryable();
                }
            }

            return(src);
        }
예제 #3
0
        public static IQueryable <T> ApplyOrdering <T, TOrderProperty>(this IQueryable <T> query, IQueryOrder <T, TOrderProperty> queryObj)
        {
            if (queryObj == null)
            {
                return(query);
            }

            if (queryObj.OrderBy == null)
            {
                return(query);
            }

            if (queryObj.IsOrderAscending)
            {
                return(query.OrderBy(queryObj.OrderBy));
            }

            return(query.OrderByDescending(queryObj.OrderBy));
        }
예제 #4
0
        /// <summary>
        /// сортировка IQueryable на основе IQueryOrder
        /// </summary>
        public static IQueryable <TEntity> ApplyOrder <TEntity>(this IQueryable <TEntity> src, IQueryOrder <TEntity> order) where TEntity : class, IDbEntity
        {
            if (order != null)
            {
                src = order.OrderItems(src);
            }

            return(src);
        }
예제 #5
0
 public OrderedQuerySpec(QuerySpec <TEntity> baseSpec, IQueryOrder <TEntity, TSortKey> order)
 {
     BaseSpec = baseSpec;
     Order    = order;
 }