Beispiel #1
0
        //public static void CarregarGrafoPeloArquivo(IDado[,] matriz)
        //{
        //    for (int i = 0; i < matriz.GetLength(0); i++)
        //    {
        //        Vertice disc = new Vertice(matriz[i, 0]);
        //        Vertice prof = new Vertice(matriz[i, 1]);
        //        Vertice peri = new Vertice(matriz[i, 2]);

        //        grade.AddVertice(disc);
        //        grade.AddVertice(prof);
        //        grade.AddVertice(peri);

        //        grade.AddAresta(new Aresta(disc, prof));
        //        grade.AddAresta(new Aresta(disc, peri));
        //    }
        //}

        public static void CarregarGrafoPeloBanco()
        {
            DataTable disciplinas = (new TDisciplina()).SelectAll();
            DataTable horarios    = (new THorario()).SelectAll();
            DataTable alocacao    = (new TAlocacao()).SelectAll();

            grade = new Grafo();

            foreach (DataRow linha in disciplinas.Rows)
            {
                // DISCIPLINA

                Disciplina d           = new Disciplina(linha[2].ToString(), int.Parse(linha[3].ToString()), int.Parse(linha[1].ToString()));
                Vertice    vDisciplina = new Vertice(d);
                grade.AddVertice(vDisciplina);

                // PERIODO

                Periodo p        = new Periodo(int.Parse(linha[1].ToString()));
                Vertice vPeriodo = grade.GetVerticePorDado(p);

                if (vPeriodo == null)
                {
                    vPeriodo = new Vertice(p);
                    grade.AddVertice(vPeriodo);
                }

                // PROFESSOR

                DataRow linhap = (new TProfessor()).Select(linha[3].ToString()); //uma consulta por inserção de disciplina é muito. Otimizar isso depois

                Professor f          = new Professor(int.Parse(linhap[0].ToString()), int.Parse(linhap[1].ToString()));
                Vertice   vProfessor = grade.GetVerticePorDado(f);

                if (vProfessor == null)
                {
                    vProfessor = new Vertice(f);
                    grade.AddVertice(vProfessor);
                }

                grade.AddAresta(new Aresta(vDisciplina, vPeriodo));
                grade.AddAresta(new Aresta(vDisciplina, vProfessor));
            }

            foreach (DataRow linha in horarios.Rows)
            {
                // HORARIO

                Horario h = new Horario(
                    (DiaSemana)int.Parse(linha[3].ToString()),
                    DateTime.Parse(linha[1].ToString()) == DateTime.Parse("19:00:00") ? Hora._19h00 : Hora._20h50);

                Vertice vHorario = new Vertice(h);

                grade.AddVertice(vHorario);

                foreach (DataRow linhaAloc in alocacao.Rows)
                {
                    if (linhaAloc[2].ToString() == linha[0].ToString())
                    {
                        Disciplina disc = new Disciplina(int.Parse(linhaAloc[1].ToString()));

                        Vertice vDisciplina = grade.GetVerticePorDado(disc);
                        Vertice vPeriodo    = grade.GetVerticePorDado(new Periodo(disc.Periodo));

                        grade.AddAresta(new Aresta(vHorario, vDisciplina));
                        grade.AddAresta(new Aresta(vHorario, vPeriodo));
                    }
                }
            }
        }
Beispiel #2
0
        public static bool Close(Periodo periodo)
        {
            bool exito = false;

            return(exito);
        }
Beispiel #3
0
 public static bool Actualizar(Periodo periodo)
 {
     return(AppProvider.Periodo.Actualizar(periodo));
 }
Beispiel #4
0
 public static bool Activar(Periodo periodo)
 {
     periodo.EstaActivo = !periodo.EstaActivo;
     return(AppProvider.Periodo.Activar(periodo));
 }
Beispiel #5
0
 public static int Insertar(Periodo periodo)
 {
     return(AppProvider.Periodo.Insertar(periodo));
 }