private static IQueryable <T> ApplyFilter <T>(this IQueryable <T> query, Filters <T> filters) { return(!filters.IsValid() ? query : filters.Get().Aggregate(query, (current, filter) => current.Where(filter.Expression))); }
public async static Task <Page <T> > Paginate <T>(this IQueryable <T> query, int pageNumber, int pageSize, Filters <T> filters) { return(await query.ApplyFilter(filters).Paginate(pageNumber, pageSize)); }