예제 #1
0
        private IQueryable <TEntity> Sort(IQueryable <TEntity> entities, ISortRule <TEntity, TId> rule, bool firstRule)
        {
            if (firstRule)
            {
                if (rule.Direction == SortDirection.Descending)
                {
                    entities = entities.OrderByDescending(rule.Expression);
                }
                else
                {
                    entities = entities.OrderBy(rule.Expression);
                }
            }
            else
            {
                if (rule.Direction == SortDirection.Descending)
                {
                    entities = (entities as IOrderedQueryable <TEntity>).ThenByDescending(rule.Expression);
                }
                else
                {
                    entities = (entities as IOrderedQueryable <TEntity>).ThenBy(rule.Expression);
                }
            }

            return(entities);
        }
예제 #2
0
 public void SetDefault(ISortRule <TEntity, TId> rule)
 {
     _defaultRule = rule;
 }
예제 #3
0
 public void Add(ISortRule <TEntity, TId> rule)
 {
     _sortRules.Add(_counter, rule);
     _counter++;
 }