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); } }
public async Task <PagedList <Produto> > BuscarPorFiltroComPaginacao(ProdutoParams prodParams) { try { return(await _repository.BuscarPorFiltroComPaginacao(prodParams)); } catch (Exception e) { throw new Exception(e.Message); } }
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 })); }
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)); }