private static SimplePredicate FilterAuction(RaiseFilterDto filter) { if (filter.RaiseForAuctionID <= 0) { return(null); } return(new SimplePredicate(nameof(Raise.AuctionId), ValueComparingOperator.Equal, filter.RaiseForAuctionID)); }
private static SimplePredicate FilterAmount(RaiseFilterDto filter) { if (filter.Amount <= 0) { return(null); } return(new SimplePredicate(nameof(Raise.Amount), ValueComparingOperator.GreaterThanOrEqual, filter.Amount)); }
protected override IQuery <Raise> ApplyWhereClause(IQuery <Raise> query, RaiseFilterDto filter) { var definedPredicates = new List <IPredicate>(); AddIfDefined(FilterUsers(filter), definedPredicates); AddIfDefined(FilterAmount(filter), definedPredicates); AddIfDefined(FilterAuction(filter), definedPredicates); if (definedPredicates.Count == 0) { return(query); } if (definedPredicates.Count == 1) { return(query.Where(definedPredicates.First())); } var wherePredicate = new CompositePredicate(definedPredicates); return(query.Where(wherePredicate)); }