Beispiel #1
0
        public async Task <IActionResult> Get([FromQuery] PageFilter pageFilter, [FromQuery] OfferViewModelFilter filter)
        {
            Expression <Func <Offer, bool> > offerFilter = OfferFilter.ConvertTo(filter);

            offerFilter = offerFilter.AndAlso(x => x.Active == true);

            PagedFilter <Offer> pagedFilter =
                new PagedFilter <Offer>(pageFilter.Page, pageFilter.Limit, offerFilter);

            Expression <Func <Offer, object> >[] includes = new Expression <Func <Offer, object> >[] {
                x => x.Employer,
                x => x.OfferType
            };


            PagedResult <Offer> offers = await _offerService.Get(pagedFilter, include : includes);

            IEnumerable <OfferViewModel> offerViewModel = OfferViewModel.From(offers.Data);

            PagedResult <OfferViewModel> queryResult = new PagedResult <OfferViewModel>(offerViewModel,
                                                                                        offers.Page,
                                                                                        offers.Limit,
                                                                                        offers.ElementsCount);

            return(Ok(queryResult));
        }
Beispiel #2
0
        public static Expression <Func <Offer, bool> > ConvertTo(OfferViewModelFilter filter)
        {
            Expression <Func <Offer, bool> > expression = t => true;

            if (filter == null)
            {
                return(expression);
            }

            expression = GetOfferTypeFilter(expression, filter.OfferTypeId);
            return(expression);
        }