Пример #1
0
        public DataTableResponse <Categoria> RespostaPesquisaCategoria(int draw, int comeco, int tamanho,
                                                                       Func <Categoria, IComparable> ordenacao, bool ascendente, string codigo, string descricao)
        {
            var predicate = PredicateBuilder.New <Categoria>();

            predicate = predicate.And(x => x.Ativo);

            if (!string.IsNullOrEmpty(codigo))
            {
                predicate = predicate.And(x => x.Codigo.ToUpper().Contains(codigo.ToUpper()));
            }

            if (!string.IsNullOrEmpty(descricao))
            {
                predicate = predicate.And(x => x.Descricao.ToUpper().Contains(descricao.ToUpper()));
            }

            var totalDados = _service.All(true);

            IOrderedEnumerable <Categoria> filtrados;

            if (ascendente)
            {
                filtrados = totalDados
                            .Where(predicate)
                            .OrderByDescending(ordenacao);
            }
            else
            {
                filtrados = totalDados
                            .Where(predicate)
                            .OrderBy(ordenacao);
            }

            var displayedCompanies = filtrados
                                     .Skip(comeco)
                                     .Take(tamanho);

            return(new DataTableResponse <Categoria>(draw, totalDados.Count(), filtrados.Count(), displayedCompanies));
        }