Пример #1
0
        public ActionResult TabelaAluno(Filtro[] filtros)
        {
            var paginacao   = StrToInt32(ConfigurationManager.AppSettings["PaginacaoPadrao"]);
            var paginaAtual = 1;

            var listaaluno = new AlunoDal().ObterTodos().ToList();

            if (filtros != null)
            {
                var listaFiltrosValidos = filtros.ToList <Filtro>().Where(ent => !String.IsNullOrEmpty(ent.value));
                foreach (var filtro in listaFiltrosValidos)
                {
                    switch (filtro.name)
                    {
                    case "codigo":
                        var id = Convert.ToInt32(filtro.value);
                        listaaluno = listaaluno.Where(ent => ent.alunoid == id).ToList();
                        break;

                    case "nome":
                        listaaluno = listaaluno.Where(ent => ent.nome.Contains(filtro.value)).ToList();
                        break;

                    case "cpf":
                        var cpf = RemoveMascara(filtro.value);
                        listaaluno = listaaluno.Where(ent => ent.cpf == cpf).ToList();
                        break;

                    case "datanascimento":
                        var datanascimento = Convert.ToDateTime(filtro.value + " 00:00:00");
                        listaaluno = listaaluno.Where(ent => ent.datanascimento.Value.Date == datanascimento.Date).ToList();
                        break;

                    case "datacadastro":
                        var datacadastro = Convert.ToDateTime(filtro.value + " 00:00:00");
                        listaaluno = listaaluno.Where(ent => ent.datacadastro.Value.Date == datacadastro.Date).ToList();
                        break;

                    case "Paginacao":
                        paginacao = StrToInt32(filtro.value);
                        break;

                    case "PaginaAtual":
                        paginaAtual = StrToInt32(filtro.value);
                        break;
                    }
                }
            }

            int quantidade = listaaluno.Count();

            var grid = new TabelaGenerica <Aluno>
            {
                Dados = listaaluno.OrderBy(ent => ent.nome)
                        .ToList()
                        .Skip(paginacao * (paginaAtual - 1)).Take(paginacao > quantidade ? quantidade : paginacao).ToList(),
                Paginacao      = paginacao,
                PaginaAtual    = paginaAtual,
                TotalRegistros = quantidade
            };

            return(View(grid));
        }