public async Task <PagedList <Cliente> > BuscarPorFiltroComPaginacao(ClienteParams parametros) { try { var paginaClientes = _context.Clientes.AsQueryable(); if (parametros.Filter != null) { paginaClientes = paginaClientes.Where(x => x.Nome.ToLower().Contains(parametros.Filter.ToLower()) || x.Endereco.ToLower().Contains(parametros.Filter.ToLower()) || x.CPF.ToString().ToLower().Contains(parametros.Filter.ToLower()) || x.Telefone.ToLower().Contains(parametros.Filter.ToLower())); } if (parametros.SortOrder.ToLower().Equals("asc")) { paginaClientes = paginaClientes.OrderBy(prod => prod.Nome); } if (parametros.SortOrder.ToLower().Equals("desc")) { paginaClientes = paginaClientes.OrderByDescending(prod => prod.Nome); } var result = await paginaClientes.ToListAsync(); return(PagedList <Cliente> .ToPagedList(result, parametros.NumeroDaPaginaAtual, parametros.TamanhoDaPagina)); } catch (MySqlException ex) { _context.Dispose(); throw new Exception(ex.Message); } }
public async Task <PagedList <Cliente> > BuscarPorFiltroComPaginacao(ClienteParams clienteParams) { try { return(await _repository.BuscarPorFiltroComPaginacao(clienteParams)); } catch (Exception e) { throw new Exception(e.Message); } }
public async Task <IActionResult> BuscarPorFiltroComPaginacao([FromQuery] ClienteParams cliParams) { PagedList <Cliente> data = await _service.BuscarPorFiltroComPaginacao(cliParams); var pageData = new { data.TotalCount, data.PageSize, data.CurrentPage, data.TotalPages, data.HasNext, data.HasPrevious }; return(Ok(new { data, pageData })); }
public async Task <JObject> GetAll(ClienteParams param) { int PageIndex = param.PageIndex; int PageSize = param.PageSize; using (SqlConnection sql = new SqlConnection(_connectionString)) { using (SqlCommand cmd = new SqlCommand("sp_GetClientesPageWise", sql)) { cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@PageIndex", PageIndex)); cmd.Parameters.Add(new SqlParameter("@PageSize", PageSize)); cmd.Parameters.Add(new SqlParameter("@RecordCount", SqlDbType.Int) { Direction = ParameterDirection.Output, Value = -1 }); var response = new List <Cliente> (); await sql.OpenAsync(); using (var reader = await cmd.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { response.Add(MapToValue(reader)); } } //pega valor da output da consulta SQL //esse valor é o count de linhas totais da tabela sendo paginada cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output; //retorna count + dados JObject getAll = JObject.FromObject(new { count = (int)cmd.Parameters["@RecordCount"].Value, data = response }); return(getAll); } } }
public async Task <ActionResult <IEnumerable <Object> > > Get([FromQuery] ClienteParams param) { return(await _repository.GetAll(param)); }