public Carrera cargarCarrera(string nombreCarrera, bool simultaneidad, string nombreArchivo) { Carrera carrera = null; if (nombreCarrera == null || nombreCarrera == "") { throw new Exception("Carrera seleccionada inválida"); } if (nombreArchivo == null || nombreArchivo == "") { throw new Exception("Nombre archivo inválido"); } if (Carreras.Count == 0 || (Carreras.Count <= 1 && simultaneidad)) { carrera = new Carrera(nombreCarrera); Carreras.Add(carrera); FileManager.CargarDatosDeArchivoFinal(nombreArchivo, carrera); } else { if (Carreras.Count == 2) { throw new Exception("Ya ha cargado las dos carreras de su simultaneidad"); } else { throw new Exception("No puede cargar otra carrera." + Environment.NewLine + "Puede seleccionar simultaneidad para cargar una segunda carrera"); } } return(carrera); }
public Semestre(Carrera carrera, int numeroSemestre) : base(definirNombreSemestre(carrera, numeroSemestre)) { this.Carrera = carrera; this.NumeroSemestre = numeroSemestre; this.Materias = new List<Materia>(); this.Estado = false; }
private static string definirNombreSemestre(Carrera c, int numeroSemestre) { string[] nombre = c.Nombre.Split(' '); string cad = ""; foreach (string s in nombre) cad += s + "."; return "Semestre #" + numeroSemestre; }
public Semestre(Carrera carrera, int numeroSemestre) : base(definirNombreSemestre(carrera, numeroSemestre)) { this.Carrera = carrera; this.NumeroSemestre = numeroSemestre; this.Materias = new List <Materia>(); this.Estado = false; }
private static string definirNombreSemestre(Carrera c, int numeroSemestre) { string[] nombre = c.Nombre.Split(' '); string cad = ""; foreach (string s in nombre) { cad += s + "."; } return("Semestre #" + numeroSemestre); }
public static void pintarMateriasJson(Carrera carrera) { string nombre = carrera.Nombre.ToLower(); StreamWriter sale = new StreamWriter("HORPROG0" + nombre + ".json"); String cadena = "[\n"; List <Semestre> semestres = carrera.Semestres; for (int l = 0; l < semestres.Count; l++) { Semestre sem = semestres[l]; List <Materia> materias = sem.Materias; for (int i = 0; i < materias.Count(); i++) { Materia m = materias[i]; List <Grupo> grupos = m.Grupos; cadena += " {\n \"semestre\":\""+ sem.NumeroSemestre + "\",\n" + " \"materia\":\""+ m + "\",\n \"grupos\":["; for (int j = 0; j < grupos.Count(); j++) { Grupo g = grupos[j]; cadena += " \n { \"id\":\""+ g.Id + "\", \n"+ g.Titulo() + "\n }"; if (j != grupos.Count() - 1) { cadena += ","; } } if (i < materias.Count() - 1) { cadena += "]\n },\n"; } else { cadena += "]\n }\n"; } } if (l < semestres.Count() - 1) { cadena += ","; } } cadena += "]"; sale.WriteLine(cadena); sale.Flush(); sale.Close(); }
public static void CargarDatosDeArchivoFinal(string path, Carrera carrera) { Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(path, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); for (int i = 0; i < 10; i++) { Excel.Worksheet hoja = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(i + 2); FileManager.leerArchivo(hoja, carrera, i + 1); Marshal.ReleaseComObject(hoja); } pintarMateriasJson(carrera); xlWorkBook.Close(true, Type.Missing, Type.Missing); xlApp.Quit(); Marshal.ReleaseComObject(xlWorkBook); Marshal.ReleaseComObject(xlApp); }
public static void pintarMateriasJson(Carrera carrera) { string nombre = carrera.Nombre.ToLower(); StreamWriter sale = new StreamWriter("HORPROG0" + nombre + ".json"); String cadena = "[\n"; List<Semestre> semestres = carrera.Semestres; for (int l = 0; l < semestres.Count; l++) { Semestre sem = semestres[l]; List<Materia> materias = sem.Materias; for (int i = 0; i < materias.Count(); i++) { Materia m = materias[i]; List<Grupo> grupos = m.Grupos; cadena += " {\n \"semestre\":\"" + sem.NumeroSemestre + "\",\n" + " \"materia\":\"" + m + "\",\n \"grupos\":["; for (int j = 0; j < grupos.Count(); j++) { Grupo g = grupos[j]; cadena += " \n { \"id\":\"" + g.Id + "\", \n" + g.Titulo() + "\n }"; if (j != grupos.Count() - 1) cadena += ","; } if (i < materias.Count() - 1) cadena += "]\n },\n"; else cadena += "]\n }\n"; } if (l < semestres.Count() - 1) cadena += ","; } cadena += "]"; sale.WriteLine(cadena); sale.Flush(); sale.Close(); }
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++; } }
public Carrera cargarCarrera(string nombreCarrera, bool simultaneidad, string nombreArchivo) { Carrera carrera = null; if (nombreCarrera == null || nombreCarrera == "") throw new Exception("Carrera seleccionada inválida"); if (nombreArchivo == null || nombreArchivo == "") throw new Exception("Nombre archivo inválido"); if (Carreras.Count == 0 || (Carreras.Count <= 1 && simultaneidad)) { carrera = new Carrera(nombreCarrera); Carreras.Add(carrera); FileManager.CargarDatosDeArchivoFinal(nombreArchivo, carrera); } else { if (Carreras.Count == 2) throw new Exception("Ya ha cargado las dos carreras de su simultaneidad"); else throw new Exception("No puede cargar otra carrera." + Environment.NewLine + "Puede seleccionar simultaneidad para cargar una segunda carrera"); } return carrera; }
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++; } }