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()); }
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; } } }
public void TmpExportarUsuariosMoodle(int idOferta) { Sebrae.Academico.BP.ManterSolucaoEducacional manterSE = new Sebrae.Academico.BP.ManterSolucaoEducacional(); manterSE.EnviarDadosOferta(idOferta); }