Exemplo n.º 1
0
        public static List <Vertice> GetDisciplinasPorPeriodo(Vertice periodo)
        {
            List <Vertice> disciplina = new List <Vertice>();

            foreach (Vertice v in periodo.GetAdjacentes())
            {
                disciplina.Add(v);
            }

            return(disciplina);
        }
Exemplo n.º 2
0
        public static Vertice GetProfessorDeDisciplina(Vertice disciplina)
        {
            foreach (Vertice v in disciplina.GetAdjacentes())
            {
                if (v.GetDado.GetType() == typeof(Professor))
                {
                    return(v);
                }
            }

            return(null);
        }
Exemplo n.º 3
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);
            }
        }