Exemplo n.º 1
0
        protected override IQuery <Offer> ApplyWhereClause(IQuery <Offer> query, OfferFilterDTO filter)
        {
            var predicates = new List <IPredicate>();

            if (filter.SearchedAuthorsIds != null && filter.SearchedAuthorsIds.Length != 0)
            {
                var predicate = new List <IPredicate>(filter.SearchedAuthorsIds
                                                      .Select(authorId => new SimplePredicate(
                                                                  nameof(Offer.CreatorId),
                                                                  ValueComparingOperator.Equal,
                                                                  authorId)));

                predicates.Add(new CompositePredicate(predicate));
            }

            if (filter.SearchedCategory.HasValue)
            {
                predicates.Add(new SimplePredicate(nameof(Offer.Category), ValueComparingOperator.Equal, filter.SearchedCategory));
            }

            if (filter.SearchedPrice.HasValue)
            {
                predicates.Add(new SimplePredicate(nameof(Offer.Price), ValueComparingOperator.Equal, filter.SearchedPrice));
            }

            return(query.Where(new CompositePredicate(predicates)));
        }
Exemplo n.º 2
0
 public async Task <QueryResultDTO <OfferDTO, OfferFilterDTO> > ListOffersAsync(OfferFilterDTO filter)
 {
     using (UnitOfWorkProvider.Create())
     {
         return(await offerService.ListOffersAsync(filter));
     }
 }