Ejemplo n.º 1
0
        // GET: Professor
        public async Task <IActionResult> Index(int?id, int?CursoID)
        {
            var viewModel = new ProfessorCurso();

            viewModel.Professores = await _context.Professor
                                    .Include(i => i.CursosAtribuidos)
                                    .ThenInclude(i => i.Curso)
                                    .ThenInclude(i => i.Departamento)
                                    .OrderBy(i => i.NomeHeroi)
                                    .ToListAsync();

            if (id != null)
            {
                ViewData["ProfessorID"] = id.Value;
                Professor professor = viewModel.Professores.Where(
                    i => i.ID == id.Value).Single();
                viewModel.Cursos = professor.CursosAtribuidos.Select(s => s.Curso);
            }

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public List <Resultado> OtimizaCurso(Dictionary <long?, PrevisaoSKU> _dicPrevisao,
                                             List <ProfessorCursoEmec> _ListaProfessorEmec,
                                             List <CursoProfessor> _listaProfessor,
                                             List <CursoEnquadramento> _listaCursoEnquadramento,
                                             ParametrosCenso _parametros)
        {
            var cargaDS = this.CargaContext.CargaDS
                          .ToDictionary(x => x.CpfProfessor);
            var cargaFS = this.CargaContext.CargaFS
                          .ToDictionary(x => x.CpfProfessor);

            ListaprofessorCurso = new List <ProfessorCurso>();

            var TaskEnade = Task.Run(() => {
                return(this.Context.CursoCenso.ToList());
            });

            // Monta Relação Professor Curso ####################

            foreach (var curso in _listaProfessor)
            {
                foreach (var prof in curso.Professores)
                {
                    // Professor novo na lista
                    if (this.ListaprofessorCurso.Where(x => x.cpfProfessor == prof.cpfProfessor.ToString()).Count() == 0)
                    {
                        professorCurso = new ProfessorCurso();
                        professorCurso.cpfProfessor = prof.cpfProfessor.ToString();
                        professorCurso.strCursos.Add(curso.CodEmec.ToString());

                        ListaprofessorCurso.Add(professorCurso);
                        professorCurso = null;
                    }

                    //  Adicionando curso ao professor
                    else
                    {
                        professorCurso = ListaprofessorCurso.FirstOrDefault(x => x.cpfProfessor == prof.cpfProfessor.ToString());
                        if (!professorCurso.strCursos.Contains(curso.CodEmec.ToString()))
                        {
                            professorCurso.strCursos.Add(curso.CodEmec.ToString());
                        }
                    }
                }
            }

            // ############## Alavanca Curso não Enade ############
            // ####################################################

            Task.WaitAll(TaskEnade);

            var CursoEnade    = TaskEnade.Result;
            var CursoNaoEnade = CursoEnade.Where(x => x.IndEnade.Contains('N')).Select(c => c.CodEmec.ToString()).Distinct().ToList();
            var CursoSimEnade = CursoEnade.Where(x => x.IndEnade.Contains('S')).Select(c => c.CodEmec.ToString()).Distinct().ToList();


            foreach (var item in _listaProfessor)
            {
                item.Professores.RemoveAll(pe =>
                                           RemoveProfessor(_listaProfessor, item, _dicPrevisao, pe, "S") &&
                                           _listaProfessor.Where(cp => cp.Professores
                                                                 .Where(p => p.cpfProfessor == pe.cpfProfessor).Count() > 0)
                                           .Select(cp => cp.CodEmec)
                                           .ToList()
                                           .Exists(x => CursoNaoEnade.Contains(x.ToString()) &&
                                                   CursoSimEnade.Contains(item.CodEmec.ToString()))
                                           );
            }
            ;

            // ######################## Alavanca Colaborador ######################## //

            foreach (var item in _listaProfessor)
            {
                item.Professores.RemoveAll(pe => (RemoveProfessor(_listaProfessor, item, _dicPrevisao, pe) &&
                                                  pe.Regime == "HORISTA" &&
                                                  ((cargaDS.TryGetValue(pe.cpfProfessor.ToString(), out var ds) ? ds.QtdHoras : 0) +
                                                   (cargaFS.TryGetValue(pe.cpfProfessor.ToString(), out var fs) ? fs.QtdHoras : 0)) < 8
                                                  ));
            }
            ;


            // ######################## Alavanca Excluído Ofensor ######################## //


            foreach (var item in _listaProfessor)
            {
                item.Professores.RemoveAll(pe => (RemoveProfessorExcluido(_listaProfessor, item, _dicPrevisao, pe) &&
                                                  pe.Ativo == "NÃO"
                                                  ));
            }
            ;


            // ######################## Limpeza força bruta ######################## //

            foreach (var item in _listaProfessor)
            {
                item.Professores.RemoveAll(pe => (RemoveProfessor(_listaProfessor, item, _dicPrevisao, pe, "N")
                                                  ));
            }
            ;


            var final = CalculaNotaCursos(_dicPrevisao, _listaProfessor, CursoSimEnade);

            return(final);
        }
Ejemplo n.º 3
0
 public void remove(ProfessorCurso professorCurso)
 {
     db.Leciona.Attach(professorCurso);
     db.Leciona.Remove(professorCurso);
     db.SaveChanges();
 }
Ejemplo n.º 4
0
        public ProfessorCurso detalhe(int?id)
        {
            ProfessorCurso professorCurso = db.Leciona.Include(i => i.professor).SingleOrDefault(x => x.id == id);

            return(professorCurso);
        }
Ejemplo n.º 5
0
 public void atualiza(ProfessorCurso professorCurso)
 {
     db.Entry(professorCurso).State = EntityState.Modified;
     db.SaveChanges();
 }
Ejemplo n.º 6
0
 public void adiciona(ProfessorCurso professorCurso)
 {
     db.Leciona.Add(professorCurso);
     db.SaveChanges();
 }