protected override IQuery <Bid> ApplyWhereClause(IQuery <Bid> query, BidFilterDto filter) { var definedPredicates = new List <IPredicate>(); AddIfDefined(FilterAuction(filter), definedPredicates); AddIfDefined(FilterBuyer(filter), definedPredicates); if (definedPredicates.Count == 0) { return(query); } if (definedPredicates.Count == 1) { return(query.Where(definedPredicates.First())); } var resultPredicate = new CompositePredicate(definedPredicates); return(query.Where(resultPredicate)); }
private static SimplePredicate FilterBuyer(BidFilterDto filter) { return(filter.BuyerId.Equals(Guid.Empty) ? null : new SimplePredicate(nameof(Bid.BuyerId), ValueComparingOperator.Equal, filter.BuyerId)); }