// Get UserFavourites
        public async Task <PaginatedResponse <List <Adventure> > > GetUserFavourites(UserFavouritesDTO userFavouritesDTO)
        {
            var httpResponse = await httpService.Post <UserFavouritesDTO, List <Adventure> >($"{url}/favourites", userFavouritesDTO);

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

            return(paginatedResponse);
        }
        public async Task <ActionResult <List <Adventure> > > GetFavourites(UserFavouritesDTO userFavouritesDTO)
        {
            var userFavouritesQueryable = context.Adventures.AsQueryable();

            if (!string.IsNullOrEmpty(userFavouritesDTO.UserEmail))
            {
                userFavouritesQueryable = userFavouritesQueryable
                                          .Where(x => x.UserFavourites.Select(y => y.UserID)
                                                 .Contains(userFavouritesDTO.UserEmail));
            }

            await HttpContext.InsertPaginationParametersInResponse(userFavouritesQueryable, userFavouritesDTO.NumPerPage);

            var favourites = await userFavouritesQueryable.Paginate(userFavouritesDTO.Pagination).ToListAsync();

            return(favourites);
        }