protected override Expression <Func <Event, object> > GetSortExpression(BaseQuery query) { return(query.SortBy switch { "Name" => e => e.Name, "Date" => e => e.Date, _ => e => e.Id, });
public IOrderedQueryable <T> ApplySorting(IQueryable <T> queryable, BaseQuery query) { var sortExpression = GetSortExpression(query); return(query.SortOrder switch { SortOrder.Descending => queryable.OrderByDescending(sortExpression), _ => queryable.OrderBy(sortExpression) });
public static IQueryable <T> ApplyPagination <T>(this IQueryable <T> queryable, BaseQuery query) { if (query.PageSize <= 0) { query.PageSize = 4; } if (query.Page <= 0) { query.Page = 1; } return(queryable.Skip(query.PageSize * (query.Page - 1)).Take(query.PageSize)); }