private static IQueryable <T> ApplySort <T>(this IQueryable <T> query, Sorts <T> sorts) { if (!sorts.IsValid()) { return(query); } return(Sorts <T> .ApplySorts(query, sorts)); }
internal static IQueryable <T> ApplySorts(IQueryable <T> query, Sorts <T> sorts) { var isFirstSort = true; var validSortings = sorts.GetAll(); IOrderedQueryable <T> orderedQuery = null; foreach (var sort in validSortings) { orderedQuery = isFirstSort ? ApplySorting(query, sort) : ApplySorting(orderedQuery, sort); isFirstSort = false; } return(orderedQuery ?? query); }
public static async Task <PagedResults <T> > Paginate <T>(this IQueryable <T> query, PagingOptions options, Sorts <T> sorts, Filters <T> filters) { return(await query.ApplyFilter(filters).Paginate(options, sorts)); }