public async Task <ActionResult <List <Team> > > Filter(FilterTeamsDTO filterTeamsDTO) { var teamsQueryable = _dbContext.Teams.AsQueryable(); if (!string.IsNullOrWhiteSpace(filterTeamsDTO.TeamName)) { teamsQueryable = teamsQueryable .Where(x => x.TeamName.Contains(filterTeamsDTO.TeamName)); } if (filterTeamsDTO.EasternConference) { teamsQueryable = teamsQueryable.Where(x => x.EasternConference); } if (filterTeamsDTO.WesternConference) { teamsQueryable = teamsQueryable.Where(x => x.WesternConference); } if (filterTeamsDTO.GameId != 0) { teamsQueryable = teamsQueryable .Where(x => x.TeamGames.Select(y => y.GameId) .Contains(filterTeamsDTO.GameId)); } await HttpContext.InsertPaginationParametersInResponse(teamsQueryable, filterTeamsDTO.RecordsPerPage); var teams = await teamsQueryable.Paginate(filterTeamsDTO.Pagination).ToListAsync(); return(teams); }
public async Task <PaginatedResponse <List <Team> > > GetTeamsFiltered(FilterTeamsDTO filterTeamsDTO) { //sending FilterTeamsDTO to the server and receiving List<Team> var responseHTTP = await _httpService.Post <FilterTeamsDTO, List <Team> >($"{url}/filter", filterTeamsDTO, includeToken : false); var totalAmountOfPages = int.Parse(responseHTTP.HttpResponseMessage.Headers.GetValues("totalAmountOfPages").FirstOrDefault()); var paginatedResponse = new PaginatedResponse <List <Team> >() { Response = responseHTTP.Response, TotalAmountOfPages = totalAmountOfPages, }; return(paginatedResponse); }