private IQueryable <Customer> ApplyFilters(IQueryable <Customer> efQuery, CustomerOrdersQueryModel queryModel) { if (!string.IsNullOrWhiteSpace(queryModel.NameSearch)) { efQuery = efQuery.Where(c => c.CompanyName.Contains(queryModel.NameSearch)); } return(efQuery); }
private IQueryable <Customer> ApplyPaging(IQueryable <Customer> efQuery, CustomerOrdersQueryModel queryModel) { if (queryModel.PageIndex.HasValue && queryModel.PageSize.HasValue) { return(efQuery .Skip(queryModel.PageIndex.Value * queryModel.PageSize.Value) .Take(queryModel.PageSize.Value) .OrderBy(c => c.CompanyName)); } return(efQuery); }
public async Task <IEnumerable <CustomerOrdersModel> > Execute(CustomerOrdersQueryModel queryModel) { var efQuery = _context.Customers.Where(c => true); efQuery = ApplyFilters(efQuery, queryModel); efQuery = ApplyPaging(efQuery, queryModel); return(await SimpleSelect(efQuery)); // return await ToListSelect(efQuery); // return await SelectAnon(efQuery); // return await ReusableProjection(efQuery); // return await ExtensionMethod(efQuery); // return await AutoMapper(efQuery); // Note: Show Linqkit predicate builder // http://www.albahari.com/nutshell/predicatebuilder.aspx }