示例#1
0
        public async Task <PaginatedResponse <List <Cluster> > > GetClustersFiltered(FilterClustersDTO filterClustersDTO)
        {
            Console.WriteLine("TRACING!");
            var httpResponse = await httpService.Post <FilterClustersDTO, List <Cluster> >($"{url}/filter", filterClustersDTO);

            var totalAmountPages = int.Parse(httpResponse.HttpResponseMessage.Headers.GetValues("totalAmountPages").FirstOrDefault());

            var paginatedResponse = new PaginatedResponse <List <Cluster> >()
            {
                Response         = httpResponse.Response,
                TotalAmountPages = totalAmountPages
            };

            return(paginatedResponse);
        }
        public async Task <ActionResult <List <Cluster> > > Filter(FilterClustersDTO filterClustersDTO)
        {
            var clustersQueryable = context.Clusters.AsQueryable();

            if (!string.IsNullOrWhiteSpace(filterClustersDTO.Name))
            {
                clustersQueryable = clustersQueryable.Where(x => x.Name.Contains(filterClustersDTO.Name));
            }

            await HttpContext.InsertPaginationParametersInResponse(clustersQueryable,
                                                                   filterClustersDTO.RecordsPerPage);

            var clusters = await clustersQueryable.Paginate(filterClustersDTO.Pagination).ToListAsync();

            return(clusters);
        }