// 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); }