Пример #1
0
        public async Task <IActionResult> OnGetAsync([FromQuery] OffersFilterParams filterParams, bool clearFilters = false)
        {
            if (clearFilters)
            {
                FilterParamsContainer <OffersFilterParams> .Clear();
            }

            string currentUserId = HttpContext.GetCurrentUserId();

            var favoriteOffers = await(!filterParams.FilterEnabled
                ? favoritesService.GetFavoriteOffers(currentUserId)
                : offersFilterService.FilterOffers(filterParams, new FiltersDictionary <Offer>
            {
                { new OfferPriceSpecification(filterParams.MinPrice, filterParams.MaxPrice), new OfferPriceFilter() },
                { new OfferLocationSpecification(filterParams.Location), new OfferLocationFilter() },
                { new OfferRoomsSpecification(filterParams.RoomsCount), new OfferRoomsFilter() },
                { new OfferPersonsSpecification(filterParams.PersonsCount), new OfferPersonsFilter() },
                { new OfferDatesSpecification(filterParams.StartDate, filterParams.EndDate), new OfferDatesFilter() },
                { new OfferFavoriteSpecification(currentUserId), new OfferFavoriteFilter() }
            }));

            Params = FilterParamsContainer <OffersFilterParams> .Store(filterParams, updateParams : true);

            FavoriteOffers = mapper.Map <List <OfferListDto> >(favoriteOffers).ToPagedList <OfferListDto>(filterParams.PageNumber, filterParams.PageSize);

            return(Page());
        }
Пример #2
0
        public async Task <IActionResult> OnGetAsync([FromQuery] OffersFilterParams filterParams)
        {
            var myOffers = await offerService.GetUserOffers(HttpContext.GetCurrentUserId());

            MyOffers = mapper.Map <List <MyOfferDto> >(myOffers).ToPagedList <MyOfferDto>(filterParams.PageNumber, filterParams.PageSize);

            return(Page());
        }
Пример #3
0
        public async Task <IEnumerable <Offer> > FilterOffers(OffersFilterParams filterParams, FiltersDictionary <Offer> filtersDictionary)
        {
            if (!filterParams.FilterEnabled)
            {
                return(null);
            }

            var offers = await database.OfferRepository.Fetch();

            offers = filtersDictionary.RunFilters(offers);

            offers = AccommodationTypeSmartEnum.FromValue((int)filterParams.AccommodationType).Filter(offers);

            offers = OfferSortTypeSmartEnum.FromValue((int)filterParams.SortType).Sort(offers);

            return(offers);
        }
Пример #4
0
        public async Task <IActionResult> OnGetAsync([FromQuery] OffersFilterParams filterParams, bool clearFilters = false)
        {
            if (clearFilters)
            {
                FilterParamsContainer <OffersFilterParams> .Clear();
            }

            var offers = !filterParams.FilterEnabled
                ? await offerService.GetOffers()
                : await offersFilterService.FilterOffers(filterParams, new FiltersDictionary <Offer>
            {
                { new OfferPriceSpecification(filterParams.MinPrice, filterParams.MaxPrice), new OfferPriceFilter() },
                { new OfferLocationSpecification(filterParams.Location), new OfferLocationFilter() },
                { new OfferRoomsSpecification(filterParams.RoomsCount), new OfferRoomsFilter() },
                { new OfferPersonsSpecification(filterParams.PersonsCount), new OfferPersonsFilter() },
                { new OfferDatesSpecification(filterParams.StartDate, filterParams.EndDate), new OfferDatesFilter() }
            });

            Params = FilterParamsContainer <OffersFilterParams> .Store(filterParams, updateParams : true);

            Offers = mapper.Map <List <OfferListDto> >(offers).ToPagedList <OfferListDto>(filterParams.PageNumber, filterParams.PageSize);

            return(Page());
        }
Пример #5
0
 public async Task <IActionResult> OnPostFilterOffersAsync([Bind] OffersFilterParams filterParams, bool updateParams = true)
 => await this.OnGetAsync(FilterParamsContainer <OffersFilterParams> .Store(filterParams, updateParams : updateParams).EnableFiltering <OffersFilterParams>());
 public IViewComponentResult Invoke(OffersFilterParams filterParams) => View(filterParams);
Пример #7
0
 public async Task <IActionResult> OnPostFilterOffers([Bind] OffersFilterParams filterParams)
 => await this.OnGetAsync(filterParams);