public async Task <PagedList <Produto> > BuscarPorFiltroComPaginacao(ProdutoParams prodParams)
        {
            try
            {
                var prodPaged = _context.Produtos.AsQueryable();


                if (prodParams.Filter != null)
                {
                    prodPaged = prodPaged.Where(x => x.Nome.ToLower().Contains(prodParams.Filter.ToLower()) ||
                                                x.Descricao.ToLower().Contains(prodParams.Filter.ToLower()) ||
                                                x.Valor.ToString().ToLower().Contains(prodParams.Filter.ToLower()) ||
                                                x.Codigo.ToString().ToLower().Contains(prodParams.Filter.ToLower()));
                }
                if (prodParams.SortOrder.ToLower().Equals("asc"))
                {
                    prodPaged = prodPaged.OrderBy(prod => prod.Nome);
                }
                if (prodParams.SortOrder.ToLower().Equals("desc"))
                {
                    prodPaged = prodPaged.OrderByDescending(prod => prod.Nome);
                }

                var result = await prodPaged.ToListAsync();

                return(PagedList <Produto> .ToPagedList(result, prodParams.NumeroDaPaginaAtual, prodParams.TamanhoDaPagina));
            }
            catch (MySqlException ex)
            {
                _context.Dispose();
                throw new Exception(ex.Message);
            }
        }
Esempio n. 2
0
 public async Task <PagedList <Produto> > BuscarPorFiltroComPaginacao(ProdutoParams prodParams)
 {
     try
     {
         return(await _repository.BuscarPorFiltroComPaginacao(prodParams));
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
Esempio n. 3
0
        public async Task <IActionResult> BuscarPorFiltroComPaginacao([FromQuery] ProdutoParams parametros)
        {
            PagedList <Produto> data = await _produtoService.BuscarPorFiltroComPaginacao(parametros);

            var pageData = new
            {
                data.TotalCount,
                data.PageSize,
                data.CurrentPage,
                data.TotalPages,
                data.HasNext,
                data.HasPrevious
            };

            return(Ok(new { data, pageData }));
        }
Esempio n. 4
0
        public async Task <IActionResult> BuscarPorFiltroComPaginacaoList([FromQuery] ProdutoParams parametros)
        {
            PagedList <Produto> produtos = await _produtoService.BuscarPorFiltroComPaginacao(parametros);

            var pageData = new
            {
                produtos.TotalCount,
                produtos.PageSize,
                produtos.CurrentPage,
                produtos.TotalPages,
                produtos.HasNext,
                produtos.HasPrevious
            };
            List <Produto> list = new List <Produto>(produtos);

            return(Ok(list));
        }