Example #1
0
        private async Task <DadosFiltrados> FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao)
        {
            var artists = await _unitOfWork.Artists.GetAllAsync();

            int total = artists.Count();

            if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase))
            {
                // Dynamic LINQ
                artists = artists.Where("Name.ToLower().Contains(@0) ", parametrosPaginacao.SearchPhrase.ToLower());
            }

            var artistsFiltered = artists.OrderBy(parametrosPaginacao.CampoOrdenado)
                                  .Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount)
                                  .Take(parametrosPaginacao.RowCount)
                                  .ToList();

            DadosFiltrados dadosFiltrados = new DadosFiltrados(parametrosPaginacao)
            {
                rows  = artistsFiltered.ToList(),
                total = total
            };

            return(dadosFiltrados);
        }
Example #2
0
        //Metodo para filtrar dados e exibir tabela
        private DadosFiltrados FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao)
        {
            var livros = db.Livros.Include(l => l.Genero);
            int total  = livros.Count();

            if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase))
            {
                int ano = 0;
                int.TryParse(parametrosPaginacao.SearchPhrase, out ano);
                decimal valor = 0;
                decimal.TryParse(parametrosPaginacao.SearchPhrase, out valor);

                livros = livros.Where("Titulo.Contains(@0) OR Autor.Contains(@0) OR AnoEdicao == (@1) OR Valor == (@2)", parametrosPaginacao.SearchPhrase, ano, valor);
            }

            //skip(5) - pular os primeiros(5) registros e Take(5) - mostrar os proximos (10)
            var            livrosPaginados = livros.OrderBy(parametrosPaginacao.CampoOrdenado).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount);
            DadosFiltrados dadosFiltrados  = new DadosFiltrados(parametrosPaginacao)
            {
                rows  = livrosPaginados.ToList(),
                total = total
            };

            return(dadosFiltrados);
        }
Example #3
0
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            HttpRequestBase     request             = controllerContext.HttpContext.Request;
            ParametrosPaginacao parametrosPaginacao = new ParametrosPaginacao(request.Form);

            return(parametrosPaginacao);
        }
Example #4
0
        private DadosFiltrados FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao)
        {
            var livros = db.Livros.Include(l => l.Genero);
            int total  = livros.Count();

            if (!string.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase))
            {
                int ano = 0;
                int.TryParse(parametrosPaginacao.SearchPhrase, out ano);

                var valor = 0.0m;
                decimal.TryParse(parametrosPaginacao.SearchPhrase, out valor);

                livros = livros.Where("Titulo.Contains(@0) OR Autor.Contains(@0)" +
                                      " OR AnoEdicao == @1 OR Valor = @2", parametrosPaginacao.SearchPhrase, ano, valor);
            }

            var livrosPaginados = livros.OrderBy(parametrosPaginacao.CampoOrdenado).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount).ToList();

            DadosFiltrados dadosFiltrados = new DadosFiltrados(parametrosPaginacao)
            {
                rows  = livrosPaginados.ToList(),
                total = total
            };

            return(dadosFiltrados);
        }
Example #5
0
        public JsonResult Listar(ParametrosPaginacao paginacao)
        {
            var livros = db.Livros.AsQueryable();

            int totalLivros = livros.Count();

            if (!String.IsNullOrWhiteSpace(paginacao.SearchPhrase))
            {
                // tentar converter em número para pesquisa
                int ano = 0;
                int.TryParse(paginacao.SearchPhrase, out ano);

                // tentar converter em décima para pesquisa
                decimal valor = 0.0m;
                decimal.TryParse(paginacao.SearchPhrase, out valor);

                // utiliza Dynamic LINQ para fazer o filtro
                livros = livros.Where("Titulo.Contains(@0) OR Autor.Contains(@0) OR AnoEdicao == @1 OR Valor == @2", paginacao.SearchPhrase, ano, valor);
            }

            // utiliza Dynamic LINQ para fazer o ordenamento por um campo
            var livrosFiltrados = livros.OrderBy(paginacao.CampoOrdenado).Skip((paginacao.Current - 1) * paginacao.RowCount).Take(paginacao.RowCount).ToList();

            int totalFiltrado = livrosFiltrados.Count();

            return(Json(new DadosFiltrados()
            {
                current = paginacao.Current,
                rowCount = paginacao.RowCount,
                rows = livrosFiltrados,
                total = totalLivros
            }, JsonRequestBehavior.AllowGet));
        }
        // ao utilizar valores de parametros padrões o .net entende que esta variavel é opcional.
        // não é possível acrescentar parametros não opcionais apos parametros opcionais tendo que colocar parametros
        public JsonResult Listar(ParametrosPaginacao parametrosPaginacao) // pagina e quantidade de registro por pag
        {
            DadosFiltro dadosFiltrados = NewMethod(parametrosPaginacao);

            // como foi mudado o nome da view criada é necessário passar como parametro aqui
            // é nessário pasasr o formato correto que o bootgrid pede na documentação
            return(Json(dadosFiltrados, JsonRequestBehavior.AllowGet));
        }
Example #7
0
        public ListaPaginada <PostsModel> Get([FromQuery] ParametrosPaginacao model)
        {
            var posts = new List <PostsModel>();

            posts = RestornaPostsList();
            if (posts != null)
            {
                posts = posts.Where(x => x.Titulo.ToLower().Contains(model.buscaTermo.ToLower())).ToList();
            }
            var listaPaginada = new ListaPaginada <PostsModel>(model.PageNumber, model.PageSize);

            return(listaPaginada.Carregar(posts));
        }
        public DadosFiltrados FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao)
        {
            var generos = _repositorio.GetAll().ToList();
            int total   = generos.Count();

            if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase))
            {
                generos = generos.Where(x => x.Nome.Contains(parametrosPaginacao.SearchPhrase)).ToList();
            }
            var            generosPaginados = generos.OrderBy(x => x.Nome).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount);
            DadosFiltrados dadosFiltrados   = new DadosFiltrados()
            {
            };

            return(dadosFiltrados);
        }
        private DadosFiltrados FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao)
        {
            var pecas = db.Pecas.Include(p => p.Fornecedor);

            int total = pecas.Count();

            if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase))
            {
                decimal valor = 0;
                decimal.TryParse(parametrosPaginacao.SearchPhrase, out valor);

                pecas = pecas.Where("Produto.Contains(@0) OR Valor = @1", parametrosPaginacao.SearchPhrase, valor);
            }

            var pecasPaginadas = pecas.OrderBy(parametrosPaginacao.CampoOrdenado).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount);

            DadosFiltrados dadosFiltrados = new DadosFiltrados(parametrosPaginacao)
            {
                rows  = pecasPaginadas.ToList(),
                total = total
            };

            return(dadosFiltrados);
        }
        private DadosFiltro NewMethod(ParametrosPaginacao parametrosPaginacao)
        {
            /*// obterá: sort[Titulo] || sort[Autor] || sort[AnoEdicao] || sort[Valor]
             *          string chav = Request.Form.AllKeys.Where(k => k.StartsWith("sort")).FirstOrDefault();
             *          // cariavel que recebe a ordenação do formulario
             *          string ordenacao = Request[chav];
             *          string campo = chav.Replace("sort[", string.Empty).Replace("]", string.Empty);*/
            var livros = db.Livros.Include(l => l.Genero);

            int total = livros.Count();

            // verifica campo searchPhrase está vazio
            if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase))
            {
                // int e decimal auxiliares para realizar a validação
                int     ano   = 0;
                decimal valor = 0.0m;
                // int.tryparse verifica se uma string tem o valor de um inteiro caso seja atribui o valor inteiro para a variavel
                int.TryParse(parametrosPaginacao.SearchPhrase, out ano);
                // decimal.tryparse verigica se o valor contino na string é decimal caso seja atribui o valor decimal para a variavel
                decimal.TryParse(parametrosPaginacao.SearchPhrase, out valor);
                // utilizando linq.dynamic para procurar pela frase inserida
                livros = livros.Where("Titulo.Contains(@0) OR Autor.Contains(@0) OR AnoEdicao == @1 OR Valor == @2", parametrosPaginacao.SearchPhrase, ano, valor);
            }

            /*
             * // caso o titulo não seja nulo nem contenha valores em branco
             * if (!String.IsNullOrWhiteSpace(livro.Titulo))
             * {
             *  // retorna a lista de livros que contenha o titulo passado
             *  livros = livros.Where(l => l.Titulo.Contains(livro.Titulo));
             * }
             * if (!String.IsNullOrWhiteSpace(livro.Autor))
             * {
             *  // retorna a lista de livros que contenha o autor informado
             *  livros = livros.Where(l => l.Autor.Contains(livro.Autor));
             * }
             * if (livro.AnoEdicao != 0)
             * {
             *  // retorna a lista de livros que contenha o ano informado
             *  livros = livros.Where(l => l.AnoEdicao.ToString().Contains(livro.AnoEdicao.ToString()));
             * }
             * if (livro.Valor != decimal.Zero)
             * {
             *  // retorna a lista de livros que contenha o valor informado
             *  livros = livros.Where(l => l.Valor.ToString().Contains(livro.Valor.ToString()));
             * }*/

            // variavel auxioliar com o campo e a ordenacao
            // string campoOrdenacao = string.Format("{0} {1}", campo, ordenacao);
            // usando Linq

            // Skip((pag-1)*regis): pagina - 1 x registros por pagina
            // dessa forma toda a cada pagina pularemos os registros que já estão na pagina anterior
            var livrosPaginados = livros.OrderBy(parametrosPaginacao.CampoOrdenado).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount); // utilizando linq.dynamic

            DadosFiltro dadosFiltrados = new DadosFiltro(parametrosPaginacao)
            {
                rows  = livrosPaginados.ToList(),
                total = total
            };

            return(dadosFiltrados);
        }
Example #11
0
        public async Task <JsonResult> Listar(ParametrosPaginacao parametrosPaginacao)
        {
            DadosFiltrados dadosFiltrados = await FiltrarEPaginar(parametrosPaginacao);

            return(Json(dadosFiltrados, JsonRequestBehavior.AllowGet));
        }
 public DadosFiltrados(ParametrosPaginacao parametrosPaginacao)
 {
     rowCount = parametrosPaginacao.RowCount;
     current  = parametrosPaginacao.Current;
 }
Example #13
0
        public JsonResult Listar(ParametrosPaginacao parametrosPaginacao)
        {
            DadosFiltrados dadosFiltrados = FiltrarEPaginar(parametrosPaginacao);

            return(Json(dadosFiltrados, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Listar(ParametrosPaginacao parametrosPaginacao)
        {
            DadosFiltrados dadosFiltrados = FiltrarEPaginar(parametrosPaginacao);

            return(Json(dadosFiltrados));
        }