예제 #1
0
        public IQueryable <Turma> ObterTurmasPorOferta(int idOferta, bool filtarPorGestor = true)
        {
            if (!filtarPorGestor)
            {
                return(ObterTodasTurma().Where(x => x.Oferta.ID == idOferta));
            }

            var ses = new ManterSolucaoEducacional().ObterTodosPorGestor();

            var oferta = ses.SelectMany(x => x.ListaOferta).FirstOrDefault(x => idOferta == 0 || x.ID == idOferta);

            var retorno = oferta != null ? oferta.ListaTurma : new List <Turma>();

            return(retorno.AsQueryable());
        }
예제 #2
0
        private static void PreencherOfertas(List <MatriculaOferta> result)
        {
            var ofertasIds = result.Select(x => x.Oferta.ID).Distinct().ToList();

            // Pegar os dados das ofertas vindos de apenas uma consulta. Muito mais performático
            // do que executar várias consultas seguidas.
            var ofertas = new ManterOferta().ObterTodasOfertas().Select(x => new Oferta
            {
                ID = x.ID,
                AlteraPeloGestorUC = x.AlteraPeloGestorUC,
                SolucaoEducacional = new SolucaoEducacional
                {
                    ID = x.SolucaoEducacional.ID
                },
                CertificadoTemplate = x.CertificadoTemplate != null
                ? new CertificadoTemplate
                {
                    ID = x.CertificadoTemplate.ID
                }
                : null
            })
                          .Where(x => ofertasIds.Contains(x.ID)).ToList();

            // Preencher dados das SEs.
            var idsSes = ofertas.Select(x => x.SolucaoEducacional.ID).Distinct().ToList();

            var solucoes = new ManterSolucaoEducacional().ObterTodosIQueryable()
                           .Select(x => new SolucaoEducacional
            {
                ID         = x.ID,
                Nome       = x.Nome,
                Ativo      = x.Ativo,
                Fornecedor = new Fornecedor
                {
                    ID = x.Fornecedor.ID
                },
                UFGestor = new Uf
                {
                    ID = x.UFGestor.ID
                }
            })
                           .Where(x => idsSes.Contains(x.ID));

            var turmas = new ManterTurma().ObterTodosIQueryable()
                         .Select(x => new Turma
            {
                ID     = x.ID,
                Nome   = x.Nome,
                Oferta = new Oferta
                {
                    ID = x.Oferta.ID
                }
            })
                         .Where(x => ofertasIds.Contains(x.Oferta.ID));

            foreach (var oferta in ofertas)
            {
                oferta.SolucaoEducacional = solucoes.FirstOrDefault(x => x.ID == oferta.SolucaoEducacional.ID);
                oferta.ListaTurma         = turmas.Where(x => x.Oferta.ID == oferta.ID).ToList();

                var matriculasOferta = result.Where(x => x.Oferta.ID == oferta.ID);

                foreach (var matricula in matriculasOferta)
                {
                    matricula.Oferta = oferta;
                }
            }
        }
예제 #3
0
 public void TmpExportarUsuariosMoodle(int idOferta)
 {
     Sebrae.Academico.BP.ManterSolucaoEducacional manterSE = new Sebrae.Academico.BP.ManterSolucaoEducacional();
     manterSE.EnviarDadosOferta(idOferta);
 }