Beispiel #1
0
 private IPredicate FilterAttackerId(FightFilterDto filter)
 {
     return(!filter.AttackerId.HasValue
         ? null
         : new SimplePredicate(nameof(Fight.AttackerId),
                               ValueComparingOperator.Equal,
                               filter.AttackerId.Value));
 }
Beispiel #2
0
 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));
     }
 }
Beispiel #3
0
        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));
     }
 }