public KendoGridVm Listar(PaginacaoVm paginacaoVm, RequisicaoDeCompraFiltroVm filtro)
        {
            _requisicoesDeCompra.SomenteAtivas();
            if (!string.IsNullOrEmpty(filtro.CodigoDoGrupoDeCompras))
            {
                _requisicoesDeCompra.PertencentesAoGrupoDeCompra(filtro.CodigoDoGrupoDeCompras);
            }
            if (filtro.DataDeSolicitacaoInicial.HasValue)
            {
                _requisicoesDeCompra.SolicitadasApartirDe(filtro.DataDeSolicitacaoInicial.Value);
            }
            if (filtro.DataDeSolicitacaoFinal.HasValue)
            {
                _requisicoesDeCompra.SolicitadasAte(filtro.DataDeSolicitacaoFinal.Value);
            }

            _processosDeCotacao.BuscaPorId(filtro.IdProcessoCotacao);

            var queryItens = (from pc in _processosDeCotacao.GetQuery()
                              from item in pc.Itens
                              let itemMaterial = (ProcessoDeCotacaoDeMaterialItem)item
                                                 select itemMaterial.RequisicaoDeCompra.Id
                              );

            var query = (from rc in _requisicoesDeCompra.GetQuery()
                         where !rc.GerouProcessoDeCotacao || queryItens.Contains(rc.Id)
                         select rc
                         );

            return(new KendoGridVm
            {
                QuantidadeDeRegistros = query.Count(),
                Registros = _builder.BuildList(query.Skip(paginacaoVm.Skip).Take(paginacaoVm.Take).ToList()).Cast <ListagemVm>().ToList()
            });
        }
        public JsonResult Listar(PaginacaoVm paginacaoVm, RequisicaoDeCompraFiltroVm filtro)
        {
            KendoGridVm kendoGridVm = _consulta.Listar(paginacaoVm, filtro);

            return(Json(kendoGridVm, JsonRequestBehavior.AllowGet));
        }