private IPredicate FilterAttackerId(FightFilterDto filter) { return(!filter.AttackerId.HasValue ? null : new SimplePredicate(nameof(Fight.AttackerId), ValueComparingOperator.Equal, filter.AttackerId.Value)); }
private IPredicate FilterFighterId(FightFilterDto filter) { if (!filter.FighterId.HasValue) { return(null); } else { var fights = new List <IPredicate>(); fights.Add(new SimplePredicate(nameof(Fight.DefenderId), ValueComparingOperator.Equal, filter.FighterId.Value)); fights.Add(new SimplePredicate(nameof(Fight.AttackerId), ValueComparingOperator.Equal, filter.FighterId.Value)); return(new CompositePredicate(fights, LogicalOperator.OR)); } }
protected override IQuery <Fight> ApplyWhereClause(IQuery <Fight> query, FightFilterDto filter) { var predicates = new List <IPredicate>(); AddIfDefined(FilterAttackerId(filter), predicates); AddIfDefined(FilterDefenderId(filter), predicates); AddIfDefined(FilterSuccess(filter), predicates); AddIfDefined(FilterFighterId(filter), predicates); if (predicates.Count == 0) { return(query); } if (predicates.Count == 1) { return(query.Where(predicates.First())); } var wherePredicate = new CompositePredicate(predicates); return(query.Where(wherePredicate)); }
public async Task <QueryResultDto <FightDto, FightFilterDto> > GetFightsHistory(FightFilterDto filter) { using (UnitOfWorkProvider.Create()) { return(await _fightService.ListFightsAsync(filter)); } }