Beispiel #1
0
        public static bool TentarAlocar(Vertice vHorario, Vertice vDisciplina /*, out Alocacao alocacao*/)
        {
            Alocacao alocacao = null;

            if (vHorario.IsAdjacente(vDisciplina.GetAdjacentes()))
            {
                return(false);
            }
            else
            {
                Vertice vProfessor = null;
                Vertice vPeriodo   = null;

                foreach (Vertice v in vDisciplina.GetAdjacentes())
                {
                    if (v.GetDado.GetType() == typeof(Professor))
                    {
                        vProfessor = v;
                    }
                    else
                    {
                        vPeriodo = v;
                    }
                }

                //Vertice vProfessor = vDisciplina.GetAdjacentes()[0];
                //Vertice vPeriodo = vDisciplina.GetAdjacentes()[1];

                Grade.AddAresta(new Aresta(vHorario, vProfessor));
                Grade.AddAresta(new Aresta(vHorario, vPeriodo));
                Grade.AddAresta(new Aresta(vHorario, vDisciplina));

                alocacao = new Alocacao((Disciplina)vDisciplina.GetDado, (Horario)vHorario.GetDado);

                alocacao.SalvarNoBanco();

                return(true);
            }
        }