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); }
public void SetDefault(ISortRule <TEntity, TId> rule) { _defaultRule = rule; }
public void Add(ISortRule <TEntity, TId> rule) { _sortRules.Add(_counter, rule); _counter++; }