예제 #1
0
        public override string ToString()
        {
            string cad = " | ";

            foreach (Clase c in Clases)
            {
                string clase = "" + c.Dia.Substring(0, 2) + " " + Clase.formatHora(c.HoraInicio) + "-" + Clase.formatHora(c.HoraFin) + " , ";
                cad += clase;
            }
            cad = "G: " + Id + " - " + CultureInfo.CurrentCulture.TextInfo.ToTitleCase(NombreCortoProfesor.ToLower()) + " " + cad.Substring(0, cad.Length - 2) + " |";
            return(cad);
        }
예제 #2
0
        public String Titulo()
        {
            String cad = "			\"profesor\":\""+ NombreProfesor + "\",\n			\"clases\":\n			[\n";

            for (int i = 0; i < Clases.Count; i++)
            {
                Clase c = Clases[i];
                cad += "				{\"dia\":\""+ c.Dia + "\", \"horaInicio\":\"" + c.HoraInicio + "\", \"horaFin\":\"" + c.HoraFin + "\"" + ", \"salon\":\"" + c.Salon + "\"}";
                if (i != Clases.Count - 1)
                {
                    cad += ",\n";
                }
            }
            return(cad + "\n			]");
        }
예제 #3
0
        private int filtrarHoraDia(List <Horario> horarios)
        {
            int cantidadFiltrados = 0;

            foreach (string s in FiltrosHoraDia)
            {
                string[] data   = s.Split(' ');
                string   dia    = data[0];
                string   inicio = data[2];
                string   fin    = data[4];
                int      intDay = (dia != "Semana") ? Clase.GetDiaFullStringToInt(dia) : -1;

                int ini  = Convert.ToInt32(inicio.Replace(":", ""));
                int fini = Convert.ToInt32(fin.Replace(":", ""));

                for (int i = horarios.Count - 1; i >= 0; i--)
                {
                    Horario h      = horarios[i];
                    bool    breaks = false;
                    if (intDay == -1 || h.DiasOcupados[intDay] != 0)
                    {
                        foreach (Grupo g in h)
                        {
                            foreach (Clase c in g.Clases)
                            {
                                if ((c.NumeroDia == intDay || intDay == -1) && Clase.cruzanHoras(ini, fini, c.HoraInicio, c.HoraFin))
                                {
                                    horarios.RemoveAt(i);
                                    breaks = true;
                                    break;
                                }
                            }
                            if (breaks)
                            {
                                break;
                            }
                        }
                    }
                }
            }
            return(cantidadFiltrados);
        }
예제 #4
0
 private static void pintarHorario(object[,] horariosArray, Horario horario, int rCnt, Dictionary <string, Color> colores, int counter)
 {
     string[] dias = new string[] { "Lunes", "Martes", "Miercoles", "Jueves", "Viernes!", "Sabado", "Domingo", "", "Horario# " + counter, "Codigo: " + horario.Id };
     for (int i = 0; i < dias.Length; i++)
     {
         horariosArray[rCnt, i + 1] = dias[i];
     }
     rCnt++;
     horario.Sort((a, b) => a.Materia.Nombre.CompareTo(b.Materia.Nombre));
     for (int i = 0; i < horario.Count(); i++)
     {
         Grupo        grupo   = horario[i];
         Materia      materia = grupo.Materia;
         List <Clase> clases  = grupo.Clases;
         for (int j = 0; j < clases.Count(); j++)
         {
             Clase clase = clases[j];
             int   dia   = clase.NumeroDia + 1;
             horariosArray[rCnt, dia] = FileManager.reporteClase(grupo, clase);
         }
         rCnt++;
     }
 }
예제 #5
0
 public static string reporteClase(Grupo g, Clase c)
 {
     return "Gr-" + g.Id + Environment.NewLine + g.Materia.Nombre.Trim() + Environment.NewLine + "Prof: " + g.NombreCortoProfesor + Environment.NewLine + c.HoraInicio + "-" + c.HoraFin;
 }
예제 #6
0
 public void Add(Clase c)
 {
     Clases.Add(c);
 }
예제 #7
0
        public override String ToString()
        {
            String inicioHorario = "";
            String lunes         = "		{\"dia\":\"Lunes\",\"materias\":[";
            String martes        = "		{\"dia\":\"Martes\",\"materias\":[";
            String miercoles     = "		{\"dia\":\"Miercoles\",\"materias\":[";
            String jueves        = "		{\"dia\":\"Jueves\",\"materias\":[";
            String viernes       = "		{\"dia\":\"Viernes!\",\"materias\":[";
            String sabado        = "		{\"dia\":\"Sabado\",\"materias\":[";

            int[] contiene = new int[7];
            for (int i = 0; i < this.Count(); i++)
            {
                Grupo        grupo   = this[i];
                Materia      materia = grupo.Materia;
                List <Clase> clases  = grupo.Clases;
                for (int j = 0; j < clases.Count(); j++)
                {
                    Clase clase = clases[j];
                    int   dia   = clase.NumeroDia;
                    contiene[dia] = 1;
                    String format = "{\"grupo\":" + "\"" + grupo.Id + "\",\"materia\":" + "\"" + materia + "\",\"horaInicio\":" + clase.HoraInicio + ",\"horaFin\":" + clase.HoraFin + "},";

                    if (dia == Clase.LUNES)
                    {
                        lunes += format;
                    }
                    if (dia == Clase.MARTES)
                    {
                        martes += format;
                    }
                    if (dia == Clase.MIERCOLES)
                    {
                        miercoles += format;
                    }
                    if (dia == Clase.JUEVES)
                    {
                        jueves += format;
                    }
                    if (dia == Clase.VIERNES)
                    {
                        viernes += format;
                    }
                    if (dia == Clase.SABADO)
                    {
                        sabado += format;
                    }
                }
            }
            if (contiene[Clase.LUNES] == 1)
            {
                lunes = lunes.Substring(0, lunes.Length - 1);
            }
            if (contiene[Clase.MARTES] == 1)
            {
                martes = martes.Substring(0, martes.Length - 1);
            }
            if (contiene[Clase.MIERCOLES] == 1)
            {
                miercoles = miercoles.Substring(0, miercoles.Length - 1);
            }
            if (contiene[Clase.JUEVES] == 1)
            {
                jueves = jueves.Substring(0, jueves.Length - 1);
            }
            if (contiene[Clase.VIERNES] == 1)
            {
                viernes = viernes.Substring(0, viernes.Length - 1);
            }
            if (contiene[Clase.SABADO] == 1)
            {
                sabado = sabado.Substring(0, sabado.Length - 1);
            }


            String f2 = "]},\n"; // Cierre de: {"dia":"Sabado", "materias":[]}

            inicioHorario += "\n{\n\"estado\": true,\n\"dias\":\n	[\n"
                             + lunes + f2
                             + martes + f2
                             + miercoles + f2
                             + jueves + f2
                             + viernes + f2
                             + sabado + "]}\n	]\n}";
            return(inicioHorario);
        }
예제 #8
0
 public void Add(Clase c)
 {
     Clases.Add(c);
 }
예제 #9
0
 public bool cruzaClase(Clase c)
 {
     return (c.Dia == Dia) ? cruzanHoras(HoraInicio, HoraFin, c.HoraInicio, c.HoraFin) : false;
 }
예제 #10
0
 public bool cruzaClase(Clase c)
 {
     return((c.Dia == Dia) ? cruzanHoras(HoraInicio, HoraFin, c.HoraInicio, c.HoraFin) : false);
 }
예제 #11
0
        public static void leerArchivo(Excel.Worksheet hoja, Carrera carrera, int semestre)
        {
            Excel.Range range = hoja.UsedRange;

            int totalFilas = range.Rows.Count;
            var startCell  = (Range)hoja.Cells[1, 1];
            var endCell    = (Range)hoja.Cells[totalFilas, 4];
            var toGetRange = hoja.Range[startCell, endCell];

            object[,] data = toGetRange.Value2;

            int filaActual = 1;

            while (filaActual <= totalFilas)
            {
                if (data[filaActual, 1] != null)
                {
                    string nombre   = (string)data[filaActual, 1];
                    int    creditos = 0;
                    string strCod   = (string)data[filaActual, 3];
                    if ((nombre != null) && (strCod != null))
                    {
                        int     codigo      = Convert.ToInt32(strCod);
                        Materia m           = new Materia(nombre, creditos, codigo);
                        int     grupoActual = 0;
                        Grupo   g           = null;
                        do
                        {
                            string cadena = (string)data[filaActual, 2];
                            if (cadena != null)
                            {
                                string[] cadenas  = cadena.Split(' ');
                                int      numGrupo = Convert.ToInt32(cadenas[0]);
                                if (grupoActual != numGrupo)
                                {
                                    grupoActual = numGrupo;
                                    string nombreProfesor = "";
                                    for (int j = 1; j < cadenas.Length; j++)
                                    {
                                        nombreProfesor += cadenas[j] + " ";
                                    }
                                    nombreProfesor = nombreProfesor.TrimEnd();
                                    g = new Grupo(nombreProfesor, m, grupoActual);
                                    m.Add(g);
                                }
                                do
                                {
                                    string[] clase         = ((string)data[filaActual, 4]).Split(' ');
                                    string   salon         = clase[3];
                                    int      horaInicioInt = Convert.ToInt32(clase[1].Replace(":", ""));
                                    int      horaFinInt    = Convert.ToInt32(clase[2].Replace(":", ""));
                                    bool     contiene      = false;
                                    for (int i = 0; i < g.Clases.Count && !contiene; i++)
                                    {
                                        Clase ca = g.Clases[i];
                                        contiene = (ca.HoraInicio == horaInicioInt && ca.HoraFin == horaFinInt && ca.NumeroDia == Clase.GetDiaSubStringToInt(clase[0]));
                                    }
                                    if (!contiene)
                                    {
                                        g.Add(new Clase(Clase.GetDiaSubStringToInt(clase[0]), horaInicioInt, horaFinInt, salon));
                                    }
                                    filaActual++;
                                } while (filaActual <= totalFilas && (data[filaActual, 2] == null || ((string)data[filaActual, 2]) == "") && data[filaActual, 4] != null);
                                filaActual--;
                            }
                            filaActual++;
                        } while (filaActual <= totalFilas && data[filaActual, 1] == null && data[filaActual, 4] != null);
                        filaActual--;
                        carrera.Semestres[semestre - 1].Materias.Add(m);
                    }
                }
                filaActual++;
            }
        }
예제 #12
0
 public static string reporteClase(Grupo g, Clase c)
 {
     return("Gr-" + g.Id + Environment.NewLine + g.Materia.Nombre.Trim() + Environment.NewLine + "Prof: " + g.NombreCortoProfesor + Environment.NewLine + c.HoraInicio + "-" + c.HoraFin);
 }