public static IOrderedQueryable <T> OrderBy <T>(this IQueryable <T> source, IQueryableOrder <T> spec) where T : class => spec.OrderBy(source);
public static IPagedEnumerable <TProjection> Paged <TEntity, TProjection>(this IQueryable <TEntity> query, IPaging spec, IQueryableOrder <TProjection> queryableOrder, Expression <Func <TEntity, TProjection> > projectionExpression, IQueryableFilter <TEntity> entitySpec = null, IQueryableFilter <TProjection> projectionSpec = null) where TEntity : class, IHasId where TProjection : class, IHasId => query .EitherOrSelf(entitySpec, x => x.Where(entitySpec)) .Select(projectionExpression) .EitherOrSelf(projectionSpec, x => x.Where(projectionSpec)) .OrderBy(queryableOrder) .OrderByIdIfNotOrdered() .ToPagedEnumerable(spec);
public static PagedResponse <TProjection> Paged <TEntity, TProjection>(this IQueryable <TEntity> query, IPaging paging, IQueryableOrder <TProjection> queryableOrder, IQueryableFilter <TEntity> entitySpec = null, IQueryableFilter <TProjection> projectionSpec = null, IConfigurationProvider configurationProvider = null) where TEntity : class, IHasId where TProjection : class => query .EitherOrSelf(entitySpec, x => x.Where(entitySpec)) .EitherProjectTo <TEntity, TProjection>(configurationProvider) .EitherOrSelf(projectionSpec, x => x.Where(projectionSpec)) .OrderBy(queryableOrder) .ToPagedResponse(paging);
public static IOrderedQueryable <T> OrderBy <T>(this IQueryable <T> query, IQueryableOrder <T> order) where T : class => order.Apply(query);