public async Task <ActionResult <List <Adventure> > > Filter(AdventureFilterDTO adventureFilterDTO)
        {
            var adventuresQueryable = context.Adventures.AsQueryable();

            if (adventureFilterDTO.GenreID != 0)
            {
                adventuresQueryable = adventuresQueryable
                                      .Where(x => x.AdventureGenres.Select(y => y.GenreID)
                                             .Contains(adventureFilterDTO.GenreID));
            }

            await HttpContext.InsertPaginationParametersInResponse(adventuresQueryable, adventureFilterDTO.NumPerPage);

            var adventures = await adventuresQueryable.Paginate(adventureFilterDTO.Pagination).ToListAsync();

            return(adventures);
        }
        public async Task <PaginatedResponse <List <Adventure> > > GetFilteredAdventures(AdventureFilterDTO adventureFilterDTO)
        {
            var httpResponse = await httpService.Post <AdventureFilterDTO, List <Adventure> >($"{url}/filter", adventureFilterDTO);

            var numPages          = int.Parse(httpResponse.HttpResponseMessage.Headers.GetValues("numPages").FirstOrDefault());
            var paginatedResponse = new PaginatedResponse <List <Adventure> >()
            {
                Response = httpResponse.Response,
                NumPages = numPages
            };

            return(paginatedResponse);
        }