Ejemplo n.º 1
0
        public async Task <ActionResult <IEnumerable <ProdutoDTO> > > Get([FromQuery] ProdutosParameters produtosParameters)
        {
            try
            {
                var produtos = await _uof.ProdutoRepository.GetProdutos(produtosParameters);


                var metadata = new
                {
                    produtos.TotalCount,
                    produtos.PageSize,
                    produtos.CurrentPage,
                    produtos.TotalPages,
                    produtos.HasNext,
                    produtos.HasPrevious
                };

                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));

                var produtoDTO = _mapper.Map <List <ProdutoDTO> >(produtos);

                //AsNoTracking somente em consultas, um ganho de performance
                return(produtoDTO);
            }
            catch (Exception)
            {
                /* consulte https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.statuscodes?view=aspnetcore-5.0 */
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  "Erro ao tentar obter os produtos do banco de dados"));
            }
        }
Ejemplo n.º 2
0
 public async Task <PagedList <Produto> > GetProdutos(ProdutosParameters produtosParameters)
 {
     // return Get().OrderBy(on => on.Nome)
     //             .Skip((produtosParameters.PageNumber - 1) * produtosParameters.PageSize)
     //             .Take(produtosParameters.PageSize)
     //             .ToList();
     return(await PagedList <Produto> .ToPagedList(Get().OrderBy(on => on.ProdutoId),
                                                   produtosParameters.PageNumber, produtosParameters.PageSize));
 }
Ejemplo n.º 3
0
        public PagedList <Produto> GetProdutos(ProdutosParameters produtosParameters)
        {
            return(PagedList <Produto> .ToPagedList(Get().OrderBy(on => on.ProdutoId),
                                                    produtosParameters.PageNumber, produtosParameters.PageSize));


            //return Get()
            //.OrderBy(on => on.Nome)
            //.Skip((produtosParameters.PageNumber - 1) * produtosParameters.PageSize)
            //.Take(produtosParameters.PageSize)
            //.ToList();
        }
        public async Task <ActionResult <IEnumerable <ProdutoDTO> > > Get([FromQuery] ProdutosParameters produtosParameters)
        {
            var produtos = await _uof.ProdutoRepository.GetProdutos(produtosParameters);

            var metadata = new
            {
                produtos.TotalCount,
                produtos.PageSize,
                produtos.CurrentPage,
                produtos.TotalPages,
                produtos.HasNext,
                produtos.HasPrevious,
            };

            Response.Headers.Add("X-pagination", JsonConvert.SerializeObject(metadata));
            var produtosDto = _mapper.Map <List <ProdutoDTO> >(produtos);

            return(produtosDto);
        }
Ejemplo n.º 5
0
        public async Task <ActionResult <IEnumerable <ProdutoDTO> > > Get([FromQuery] ProdutosParameters produtosParameters)
        {
            // para ver a paginação, digitar a querry string "?pageNumber=1&pageSize=2"
            // https://localhost:5001/api/produtos?pageNumber=1&pageSize=4
            var produtos = await _uof.ProdutoRepository.GetProdutos(produtosParameters); // usar o banco de dados justifica o uso de métodos assíncronos

            var metadata = new
            {
                produtos.TotalCount,
                produtos.PageSize,
                produtos.CurrentPage,
                produtos.TotalPages,
                produtos.HasNext,
                produtos.HasPrevious
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); // header

            var produtosDto = _mapper.Map <List <ProdutoDTO> >(produtos);

            return(produtosDto);
        }
 public async Task <PagedList <Produto> > GetProdutos(ProdutosParameters produtosParameters)
 {
     return(await PagedList <Produto> .ToPagedList(Get().OrderBy(on => on.ProdutoId), produtosParameters.PageNumber, produtosParameters.PageSize));
 }