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()); }
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()); }
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); }
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()); }
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);
public async Task <IActionResult> OnPostFilterOffers([Bind] OffersFilterParams filterParams) => await this.OnGetAsync(filterParams);