private IQueryOver<Fornecedor, Fornecedor> AplicarFiltros(FornecedorFiltroVm filtro, bool aplicarFiltroDeAreaDeVenda)
        {
            var unitOfWorkNh = ObjectFactory.GetInstance<IUnitOfWorkNh>();

            Fornecedor fornecedor = null;
            IQueryOver<Fornecedor, Fornecedor> queryOver = unitOfWorkNh.Session.QueryOver(() => fornecedor)
                .Where(f => f.Eliminacao == null || f.Eliminacao != "X");

            if (!string.IsNullOrEmpty(filtro.Codigo))
            {
                queryOver = queryOver.And(f => f.Codigo.IsInsensitiveLike(filtro.Codigo, MatchMode.Anywhere));
            }

            if (!string.IsNullOrEmpty(filtro.Nome))
            {
                queryOver = queryOver.And(f => f.Nome.IsInsensitiveLike(filtro.Nome, MatchMode.Anywhere));
            }

            if (!string.IsNullOrEmpty(filtro.Cnpj))
            {
                queryOver = queryOver.And(f => f.Cnpj == filtro.Cnpj);
            }

            if (!string.IsNullOrEmpty(filtro.Cpf))
            {
                queryOver = queryOver.And(f => f.Cpf == filtro.Cpf);
            }

            if (aplicarFiltroDeAreaDeVenda && filtro.IdDaAreaDeVenda.HasValue)
            {
                AplicarFiltroDeAreaDeVenda(queryOver, filtro.IdDaAreaDeVenda.Value);
            }

            return queryOver;
        }
        public KendoGridVm Listar(PaginacaoVm paginacaoVm, FornecedorFiltroVm filtro)
        {
            IQueryOver<Fornecedor, Fornecedor> queryOver = AplicarFiltros(filtro, true);

            var kendoGridVm = new KendoGridVm
            {
                QuantidadeDeRegistros = queryOver.RowCount(),
                Registros =
                    _builderFornecedor.BuildList(queryOver.Skip(paginacaoVm.Skip).Take(paginacaoVm.Take).List())
                        .Cast<ListagemVm>()
                        .ToList()

            };
            return kendoGridVm;
        }
 public JsonResult ListarFornecedor(PaginacaoVm paginacaoVm, FornecedorFiltroVm filtro)
 {
     KendoGridVm kendoGridVm = _consultaFornecedor.Listar(paginacaoVm, filtro);
     return Json(kendoGridVm, JsonRequestBehavior.AllowGet);
 }