public async Task <IEnumerable <Order> > GetOrderListAsync(SortingCriterion criterion) { IQueryable <Order> orders = _db.Orders; await Task.Run(() => { orders = ApplySorting(orders, criterion); orders = orders.GetPage(criterion.PageNumber, criterion.PageSize); }); return(orders); }
private IQueryable <Order> ApplySorting(IQueryable <Order> orders, SortingCriterion criterion) { switch (criterion.Sorting) { case Sorting.Newer: return(orders.OrderBy(x => x.CreationDate)); case Sorting.Older: return(orders.OrderByDescending(x => x.CreationDate)); default: return(orders); } }