public List <GrupoUsuarioEntity> Listar(string consulta, PaginadorInfo paginador)
        {
            var query = DbContext.GrupoUsuario.AsQueryable();

            if (!string.IsNullOrEmpty(consulta))
            {
                query = query.Where(c => c.Nome.Contains(consulta));
            }
            return(Paginar(query, paginador));
        }
        public List <ProdutoEntity> Listar(string consulta, PaginadorInfo paginador)
        {
            var query = DbContext.Produto.Include(c => c.ProdutoNps).AsQueryable();

            if (!string.IsNullOrWhiteSpace(consulta))
            {
                query = query.Where(c => c.Titulo.Contains(consulta));
            }

            return(Paginar(query, paginador));
        }
        public List <UsuarioEntity> Listar(string consulta, PaginadorInfo paginador)
        {
            var query = DbContext.Usuario
                        .OrderBy(c => c.Status)
                        .ThenBy(c => c.Nome)
                        .AsQueryable();

            if (!string.IsNullOrWhiteSpace(consulta))
            {
                query = query.Where(c => c.Email.Contains(consulta) || c.Nome.Contains(consulta));
            }

            return(Paginar(query, paginador));
        }
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            if (bindingContext.ModelType == typeof(PaginadorInfo))
            {
                var key = bindingContext.ModelName;

                var actualValue = new PaginadorInfo(
                    GetValue(bindingContext, "numeroPagina"),
                    GetValue(bindingContext, "tamanhoPagina"));

                bindingContext.Result = ModelBindingResult.Success(actualValue);
            }

            return(Task.FromResult(0));
        }
        protected static List <TElement> Paginar <TElement>(IQueryable <TElement> query, PaginadorInfo paginador)
        {
            paginador.SetTotalRegistro(query.LongCount());

            int totalExibidos;

            try
            {
                totalExibidos = paginador.TotalPaginas < paginador.TotalExibidos / paginador.TamanhoPagina
                    ? 0
                    : paginador.TotalExibidos;
            }
            catch (DivideByZeroException)
            {
                totalExibidos = 0;
            }

            return(query.Skip(totalExibidos).Take(paginador.TamanhoPagina).ToList());
        }
        public List <ConteudoEntity> Listar(EConteudoChave conteudoChave, string filtro, PaginadorInfo paginador)
        {
            var consulta = DbContext.Conteudo
                           .AsQueryable();

            if (!string.IsNullOrWhiteSpace(filtro))
            {
                consulta = consulta.Where(c => c.Assunto.Contains(filtro) ||
                                          c.Descricao.Contains(filtro) ||
                                          c.Titulo.Contains(filtro));
            }

            if (conteudoChave != null)
            {
                consulta = consulta.Where(c => c.IdConteudo == conteudoChave.Id);
            }

            return(Paginar(consulta, paginador));
        }