/// <summary>
        /// Filtra e ordena os dados
        /// </summary>
        /// <param name="pagina">Posição da página atual sendo exibida</param>
        /// <param name="qtdLinhas">Quantidade de registro por páginas</param>
        /// <param name="busca">Palavra a ser buscada em todos os campos</param>
        /// <param name="campoOrdenacao">Campo a ser ordenado</param>
        /// <param name="tipoOrdenacao">Tipo de ordenação : asc / desc</param>
        /// <returns>Retorna apenas os dados que devem ser exibidos na página atual.
        /// </returns>
        public DadosPaginados ListarPaginado(int pagina, int qtdLinhas, string busca, string campoOrdenacao, string tipoOrdenacao)
        {
            //Calcula o registro inicial a ser mostrado com base na página atual e a qtd de linhas a ser exibida na mesma.
            int registroInicial = (pagina - 1) * qtdLinhas;

            campoOrdenacao += tipoOrdenacao.ToUpper().Equals("DESC") ? " DESCENDING" : "";

            // var dadosFiltrados = contexto.Planos.Where(a =>
            //     (busca == null ||
            //     a.QuantidadeDias.ToString().Contains(busca.ToUpper()))
            // );
            // var distinctPeople = contexto.Meses.GroupBy(p => p.Data).Select(g => g.First()).ToList();
            var meses = contexto.Meses.Select(m => new DateTime(m.Data.Year, m.Data.Month, 1)).Distinct().ToList();
            // var meses2 = meses.OrderByDescending(m => m.Year).ThenByDescending(m => m.Month).ToList();

            // var dadosFiltrados = contexto.Meses.Select(m => new DateTime(m.Data.Year, m.Data.Month, 1)).Distinct();
            var dadosFiltrados = meses.OrderByDescending(x => x.Date);

            DadosPaginados dadosPaginados = new DadosPaginados();

            dadosPaginados.Pagina = pagina;
            dadosPaginados.QuantidadePorPagina = qtdLinhas;
            dadosPaginados.Total = dadosFiltrados.Count();

            if (qtdLinhas < 0)
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(registroInicial).ToList();
            }
            else
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(registroInicial).Take(qtdLinhas).ToList();
            }
            return(dadosPaginados);
        }
        /// <summary>
        /// Filtra e ordena os dados
        /// </summary>
        /// <param name="pagina">Posição da página atual sendo exibida</param>
        /// <param name="qtdLinhas">Quantidade de registro por páginas</param>
        /// <param name="busca">Palavra a ser buscada em todos os campos</param>
        /// <param name="campoOrdenacao">Campo a ser ordenado</param>
        /// <param name="tipoOrdenacao">Tipo de ordenação : asc / desc</param>
        /// <returns>Retorna apenas os dados que devem ser exibidos na página atual.
        /// </returns>
        public DadosPaginados ListarPaginado(int pagina, int qtdLinhas, string busca, string campoOrdenacao, string tipoOrdenacao)
        {
            //Calcula o registro inicial a ser mostrado com base na página atual e a qtd de linhas a ser exibida na mesma.
            int registroInicial = (pagina - 1) * qtdLinhas;

            campoOrdenacao += tipoOrdenacao.ToUpper().Equals("DESC") ? " DESCENDING" : "";

            var dadosFiltrados = contexto.Planos.Where(a =>
                                                       a.Excluido == false &&
                                                       (busca == null ||
                                                        a.QuantidadeDias.ToString().Contains(busca.ToUpper()))
                                                       );

            dadosFiltrados = dadosFiltrados.OrderBy(campoOrdenacao);

            DadosPaginados dadosPaginados = new DadosPaginados();

            dadosPaginados.Pagina = pagina;
            dadosPaginados.QuantidadePorPagina = qtdLinhas;
            dadosPaginados.Total = dadosFiltrados.Count();

            if (qtdLinhas < 0)
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(registroInicial).ToList();
            }
            else
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(registroInicial).Take(qtdLinhas).ToList();
            }
            return(dadosPaginados);
        }
예제 #3
0
        public DadosPaginados ListarPaginado(int inicio, int tamanho, string busca, string campoOrdenacao, string tipoOrdenacao)
        {
            campoOrdenacao += tipoOrdenacao.ToUpper().Equals("DESC") ? " DESCENDING" : "";


            var dadosFiltrados = LeilaoContexto.Lances.Where(i =>
                                                             (busca == null) || (i.Pessoa.Nome.ToUpper().Contains(busca.ToUpper()))
                                                             ).Include("Pessoa").Include("Produto")
                                 .Select(i => new
            {
                i.Id,
                nomePessoa  = i.Pessoa.Nome,
                nomeProduto = i.Produto.Nome,
                valor       = i.Valor
            });

            dadosFiltrados = dadosFiltrados.OrderBy(campoOrdenacao);

            DadosPaginados dadosPaginados = new DadosPaginados();

            dadosPaginados.QuantidadePorPagina = tamanho;
            dadosPaginados.Total = dadosFiltrados.Count();

            if (tamanho < 0)
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(inicio).ToList();
            }
            else
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(inicio).Take(tamanho).ToList();
            }

            return(dadosPaginados);
        }
        /// <summary>
        /// Filtra e ordena os dados
        /// </summary>
        /// <param name="pagina">Posição da página atual sendo exibida</param>
        /// <param name="qtdLinhas">Quantidade de registro por páginas</param>
        /// <param name="busca">Palavra a ser buscada em todos os campos</param>
        /// <param name="campoOrdenacao">Campo a ser ordenado</param>
        /// <param name="tipoOrdenacao">Tipo de ordenação : asc / desc</param>
        /// <returns>Retorna apenas os dados que devem ser exibidos na página atual.
        /// </returns>
        public DadosPaginados ListarPaginado(int pagina, int qtdLinhas, string busca, string campoOrdenacao, string tipoOrdenacao, Enums.Status?status, Enums.Situacao?situacao)
        {
            //Calcula o registro inicial a ser mostrado com base na página atual e a qtd de linhas a ser exibida na mesma.
            int registroInicial = (pagina - 1) * qtdLinhas;

            campoOrdenacao += tipoOrdenacao.ToUpper().Equals("DESC") ? " DESCENDING" : "";

            var dadosFiltrados = contexto.Alunos.Include(x => x.Meses).Where(a =>
                                                                             ((status.Value == Enums.Status.Todos) || (status.Value == Enums.Status.Ativos && a.Ativo) || (status.Value == Enums.Status.Inativos && a.Ativo == false)) &&
                                                                             (
                                                                                 situacao.HasValue == false ||
                                                                                 (situacao.Value == Enums.Situacao.Todos) ||
                                                                                 (situacao.Value == Enums.Situacao.PagamentoEmDia && a.Meses.Any(m => m.Pago == false && m.Data.CompareTo(DateTime.Now) < 0) == false) ||
                                                                                 (situacao.Value == Enums.Situacao.Devendo && a.Meses.Any(m => m.Pago == false && m.Data.CompareTo(DateTime.Now) < 0) == true)
                                                                             ) &&
                                                                             (busca == null ||
                                                                              a.Nome.ToUpper().Contains(busca.ToUpper()))
                                                                             );

            dadosFiltrados = dadosFiltrados.OrderBy(campoOrdenacao);
            foreach (var aluno in dadosFiltrados)
            {
                aluno.Meses   = aluno.Meses.OrderByDescending(m => m.Data).ToList();
                aluno.Devendo = aluno.Meses.Any(m => m.Pago == false && m.Data.CompareTo(DateTime.Now) < 0);
            }

            DadosPaginados dadosPaginados = new DadosPaginados();

            dadosPaginados.Pagina = pagina;
            dadosPaginados.QuantidadePorPagina = qtdLinhas;
            dadosPaginados.Total = dadosFiltrados.Count();

            if (qtdLinhas < 0)
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(registroInicial).ToList();
            }
            else
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(registroInicial).Take(qtdLinhas).ToList();
            }
            return(dadosPaginados);
        }
        /// <summary>
        /// Filtra e ordena os dados
        /// </summary>
        /// <param name="pagina">Posição da página atual sendo exibida</param>
        /// <param name="qtdLinhas">Quantidade de registro por páginas</param>
        /// <param name="busca">Palavra a ser buscada em todos os campos</param>
        /// <param name="campoOrdenacao">Campo a ser ordenado</param>
        /// <param name="tipoOrdenacao">Tipo de ordenação : asc / desc</param>
        /// <returns>Retorna apenas os dados que devem ser exibidos na página atual.
        /// </returns>
        public DadosPaginados ListarPaginado(int pagina, int qtdLinhas, string busca, string campoOrdenacao, string tipoOrdenacao, TipoLog?tipo)
        {
            //Calcula o registro inicial a ser mostrado com base na página atual e a qtd de linhas a ser exibida na mesma.
            int registroInicial = (pagina - 1) * qtdLinhas;

            campoOrdenacao += tipoOrdenacao.ToUpper().Equals("DESC") ? " DESCENDING" : "";

            var dadosFiltrados = contexto.Logs.Where(p =>
                                                     (tipo.HasValue == false || tipo.Value == 0 || p.TipoLog == tipo) && (
                                                         busca == null ||
                                                         p.Descricao.Contains(busca) ||
                                                         p.Ip.Contains(busca) ||
                                                         p.Data.ToString().Contains(busca) ||
                                                         p.NomeUsuario.Contains(busca) ||
                                                         p.TipoLog.ToString().Contains(busca))
                                                     );

            dadosFiltrados = dadosFiltrados.OrderBy(campoOrdenacao);

            DadosPaginados dadosPaginados = new DadosPaginados();

            dadosPaginados.Pagina = pagina;
            dadosPaginados.QuantidadePorPagina = qtdLinhas;
            dadosPaginados.Total = dadosFiltrados.Count();

            if (qtdLinhas < 0)
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(registroInicial).ToList();
            }
            else
            {
                dadosPaginados.Dados = dadosFiltrados.Skip(registroInicial).Take(qtdLinhas).ToList();
            }
            foreach (Log l in dadosPaginados.Dados)
            {
                l.StatusAnterior = "";
                l.StatusAtual    = "";
            }
            return(dadosPaginados);
        }