public static List <OrderLocal> GetFilteredOrders_Admin(SearchOrdersRequestModel source) { using (var dbContext = new DeliversEntities()) { try { //var results = dbContext.Orders.Where(x => (source.ListStatuses.Count == 0 || (source.ListStatuses.Any(s => s == x.Status))) && //(source.ListRiders.Count == 0 || (source.ListRiders.Any(s => x.PickedBy.Equals(s)))) && //(source.ListRestaurants.Count == 0 || (source.ListRestaurants.Any(s => x.OrderDetails.FirstOrDefault().ItemDetail.Id == s))) //).ToList().OrderByDescending(o => o.Id).Select(o => o.MappOrder()).ToList(); var abc = dbContext.Orders.ToList(); var results = dbContext.Orders.Where(x => (source.ListStatuses.Count == 0) && (source.ListRiders.Count == 0 || (source.ListRiders.Any(s => x.PickedBy.Equals(s)))) ).ToList().OrderByDescending(o => o.Id).Select(o => o.MappOrder()).ToList(); return(results); } catch (Exception e) { return(null); //throw; } //var orders = dbContext.Orders.ToList().OrderByDescending(o => o.Id).Select(o => o.MappOrder()).ToList(); } }
public static Expression <Func <OrderLocal, bool> > BuildPredicateForOrdersSearching(SearchOrdersRequestModel obj) { var predicate = PredicateBuilder.False <OrderLocal>(); if (obj.ListStatuses != null && obj.ListStatuses.Count > 0) { foreach (var status in obj.ListStatuses) { predicate = predicate.Or(o => o.Status.ToLower() == status.ToLower()); } } return(predicate); }