Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }