Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
 public async Task <PagedList <Cliente> > BuscarPorFiltroComPaginacao(ClienteParams clienteParams)
 {
     try
     {
         return(await _repository.BuscarPorFiltroComPaginacao(clienteParams));
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
Exemplo n.º 3
0
        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 }));
        }
Exemplo n.º 4
0
        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));
 }