/// <summary> /// Lleva a cabo el proceso de evaluacion de los alumnos /// </summary> private void EvaluarAlumnos() { //Se ejecuta hasta que ya no queden alumnos para evaluar //Cuando un alumno termine de rendir se lo remueve de la lista de alumnos while (this.listadoAlumnos.Count != 0) { //Llamo al proximo alumno a ser evaluado //El primer alumno que rinde se genera cuando inicia el programa y se guarda en el atributo proximoAlumno del form MostrarProximoAlumno(this.proximoAlumno); this.listadoAlumnos.Remove(proximoAlumno); ActualizarListaEsperaAlumnos(proximoAlumno); Thread.Sleep(2000); Alumno alumnoEnEvaluacion = proximoAlumno; MostrarAlumnoEnEvaluacion(alumnoEnEvaluacion); //Si la lista de alumnos esta en 0 es porque no hay un proximo alumno a quien llamar if (this.listadoAlumnos.Count != 0) { this.proximoAlumno = LlamarAlumnoAlAzar(); MostrarProximoAlumno(proximoAlumno); } Aula aulaEvaluacion = LlamarAulaAlAzar(); Docente docenteEvaluador = LlamarDocenteAlAzar(); MostrarDocenteEvaluando(docenteEvaluador); Evaluar(); Evaluacion e = this.generarEvaluacion(alumnoEnEvaluacion, docenteEvaluador, aulaEvaluacion); try { EvaluacionConcluida.Invoke(e); } catch (Exception excepcion) { //Se registra la informacion de la excepcion en un archivo txt ArchivoTxt.GuardarEnLog("Ocurrio el siguiente error: " + excepcion.Message); MessageBox.Show(excepcion.Message, "Error"); } ActualizarListaEvaluaciones(); //Se aprueba con 5 o mas if (e.NotaFinal >= 5) { alumnoEnEvaluacion.NotaFinal = e.NotaFinal; SerializarAlumnoAprobado(alumnoEnEvaluacion); } else { alumnoEnEvaluacion.NotaFinal = e.NotaFinal; SerializarAlumnoDesaprobado(alumnoEnEvaluacion); } } PonerEnBlanco(); }
/// <summary> /// Actualiza la dgvTablaEvaluaciones obteniendo las evaluaciones de la base de datos /// </summary> private void ActualizarListaEvaluaciones() { if (this.dgvTablaEvaluaciones.InvokeRequired) { dgvTablaEvaluaciones.BeginInvoke((MethodInvoker) delegate { try { this.dgvTablaEvaluaciones.DataSource = JardinSql.ObtenerEvaluaciones(); } catch (Exception excepcion) { //Se registra la informacion de la excepcion en un archivo txt ArchivoTxt.GuardarEnLog("Ocurrio el siguiente error: " + excepcion.Message); MessageBox.Show(excepcion.Message, "Error"); } }); } else { try { this.dgvTablaEvaluaciones.DataSource = JardinSql.ObtenerEvaluaciones(); } catch (Exception excepcion) { //Se registra la informacion de la excepcion en un archivo txt ArchivoTxt.GuardarEnLog("Ocurrio el siguiente error: " + excepcion.Message); MessageBox.Show(excepcion.Message, "Error"); } } }
/// <summary> /// Obtiene los alumnos desde la base de datos y los guarda en una lista /// </summary> private void CargarAlumnos() { try { JardinSql.ObtenerAlumnos(this.listadoAlumnos); } catch (Exception excepcion) { //Se registra la informacion de la excepcion en un archivo txt ArchivoTxt.GuardarEnLog("Ocurrio el siguiente error: " + excepcion.Message); MessageBox.Show(excepcion.Message, "Error"); } this.dgvTablaAlumnos.DataSource = this.listadoAlumnos; }
/// <summary> /// Deserializa la lista de docentes del archivo Xml y luego inserta los docentes en la base de datos SOLO la primera vez que se corre el programa /// </summary> private void DeserializarInsertarDocentes() { ArchivoXml <Alumno> serializador = new ArchivoXml <Alumno>(); string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\SegundoParcialUtn\\JardinUtn\\Docentes\\Docentes.xml"; try { List <Docente> auxDocentes = serializador.LeerLista(path); JardinSql.InsertarDocentes(auxDocentes); } catch (Exception excepcion) { //Se registra la informacion de la excepcion en un archivo txt ArchivoTxt.GuardarEnLog("Ocurrio el siguiente error: " + excepcion.Message); MessageBox.Show(excepcion.Message, "Error"); } }
/// <summary> /// Creo un archivo de texto llamado Fabrica.txt con sus atributos y propiedades /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_txt_Click(object sender, EventArgs e) { ArchivoTxt texto = new ArchivoTxt(); string path = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "Fabrica.txt"); try { if (texto.Guardar(path, fabrica.ToString())) { MessageBox.Show("Se ha guardado el archivo con exito"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Serializa a un alumno desaprobado en Xml /// </summary> /// <param name="a">Alumno a serializar</param> private void SerializarAlumnoDesaprobado(Alumno a) { string fecha = DateTime.Now.ToString("dd_MM_yyyy"); string nombreArchivo = a.Apellido + "_" + a.Nombre + "_" + fecha + ".xml"; ArchivoXml <Alumno> serializador = new ArchivoXml <Alumno>(); string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\SegundoParcialUtn\\JardinUtn\\Serializaciones\\DESAPROBADOS\\" + nombreArchivo; try { serializador.Guardar(a, path); } catch (Exception excepcion) { //Se registra la informacion de la excepcion en un archivo txt ArchivoTxt.GuardarEnLog("Ocurrio el siguiente error: " + excepcion.Message); MessageBox.Show(excepcion.Message, "Error"); } }
static void Main(string[] args) { //Cambio el titulo de la consola Console.Title = "Agustin-Fernandez-2C"; //Creo la fabrica Fabrica fabrica = new Fabrica(); fabrica.HarcodearProductos(); //Harcodeo los dispositivos Dispositivos d1 = new Notebook("Notebook hp", 25, 500, Notebook.EModeloNotebook.HP); Notebook d2 = new Notebook("Notebook MAC", 1, 242424, Notebook.EModeloNotebook.Mac); Dispositivos d3 = new Celular("Huawei mate 10", 64, 15000, Celular.EModeloCelulares.Huawei); Celular d4 = new Celular("Samsung Note 10", 32, 40000, Celular.EModeloCelulares.Samsung); //Creo los hilos que simulan el harcodeo de mas dispositivos Thread hilo1 = new Thread(new ParameterizedThreadStart(Fabrica.AgregarCelularesAProduccion)); Thread hilo2 = new Thread(new ParameterizedThreadStart(Fabrica.AgregarNotebooksAProduccion)); try { if (DispositivoDAO.DeleteTodosLosDispositivos()) { Console.WriteLine("Se limpio la tabla"); } } catch (Exception e) { Console.WriteLine(e.Message); } //Tratamos de cargar los dispositivos try { //if ((fabrica - d1) && (fabrica - d2) && (fabrica - d3) && (fabrica - d4)) //{ // Console.WriteLine("Primero me aseguro de borrar si es que quedaron guardados de alguna anterior ejecucion"); //} if (fabrica + d1) { Console.WriteLine("Se cargo con exito el dispositivo 1"); } if (fabrica + d2) { Console.WriteLine("Se cargo con exito el dispositivo 2"); } if (fabrica + d3) { Console.WriteLine("Se cargo con exito el dispositivo 3"); } if (fabrica + d4) { Console.WriteLine("Se cargo con exito el dispositivo 4"); } //Cargo un dispositivo repetido Console.WriteLine("Ahora se trata de cargar un dispositivo repetido deberia tirar excepcion"); if (fabrica + d1) { Console.WriteLine("Se cargo con exito el dispositivo 1"); } } catch (DispositivoRepetidoException e) { Console.WriteLine(e.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); try { Console.WriteLine("Se trata de sacar un dispositivo de la lista con el operador -"); if (fabrica - d1) { Console.WriteLine("Dispositivo quitado con exito"); } } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); try { Console.WriteLine("Se muestran los productos harcodeados y se crea el archivo .xml"); Console.WriteLine(); Console.WriteLine(fabrica.ToString()); Fabrica.Guardar(fabrica); } catch (ArchivosException e) { Console.WriteLine(e.Message); Console.WriteLine(e.InnerException.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); try { Console.WriteLine("Se guarda el archivo en .txt"); string path = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "Fabrica.txt"); ArchivoTxt txt = new ArchivoTxt(); txt.Guardar(path, fabrica.ToString()); Console.WriteLine("Datos guardados con exito"); } catch (ArchivosException e) { Console.WriteLine(e.Message); Console.WriteLine(e.InnerException.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); try { hilo1.Name = "Hilo uno"; hilo2.Name = "Hilo dos"; Console.WriteLine("Se hardcodean 6 dispositivos de diferentes hilos"); hilo1.Start(fabrica); Thread.Sleep(5000); hilo2.Start(fabrica); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); }
static void Main(string[] args) { //Cambio el titulo de la consola Console.Title = "Agustin-Fernandez-2C"; //Creo la fabrica Fabrica fabrica = new Fabrica(); //Harcodeo los dispositivos Dispositivos d1 = new Notebook("Notebook hp", 25, 500, Notebook.EModeloNotebook.HP); Notebook d2 = new Notebook("Notebook MAC", 1, 242424, Notebook.EModeloNotebook.Mac); Dispositivos d3 = new Celular("Huawei mate 10", 64, 15000, Celular.EModeloCelulares.Huawei); Celular d4 = new Celular("Samsung Note 10", 32, 40000, Celular.EModeloCelulares.Samsung); //Tratamos de cargar los dispositivos try { if (fabrica + d1) { Console.WriteLine("Se cargo con exito el dispositivo 1"); } if (fabrica + d2) { Console.WriteLine("Se cargo con exito el dispositivo 2"); } if (fabrica + d3) { Console.WriteLine("Se cargo con exito el dispositivo 3"); } if (fabrica + d4) { Console.WriteLine("Se cargo con exito el dispositivo 4"); } //Cargo un dispositivo repetido Console.WriteLine("Ahora se trata de cargar un dispositivo repetido deberia tirar excepcion"); if (fabrica + d1) { Console.WriteLine("Se cargo con exito el dispositivo 1"); } } catch (DispositivoRepetidoException e) { Console.WriteLine(e.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); try { Console.WriteLine("Se trata de sacar un dispositivo de la lista con el operador -"); if (fabrica - d1) { Console.WriteLine("Dispositivo quitado con exito"); } } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); try { Console.WriteLine("Se muestran los productos harcodeados y se crea el archivo .xml"); Console.WriteLine(); Console.WriteLine(fabrica.ToString()); Fabrica.Guardar(fabrica); } catch (ArchivosException e) { Console.WriteLine(e.Message); Console.WriteLine(e.InnerException.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); try { Console.WriteLine("Se guarda el archivo en .txt"); string path = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "Fabrica.txt"); ArchivoTxt txt = new ArchivoTxt(); txt.Guardar(path, fabrica.ToString()); Console.WriteLine("Datos guardados con exito"); } catch (ArchivosException e) { Console.WriteLine(e.Message); Console.WriteLine(e.InnerException.Message); } Console.WriteLine("Presione una tecla para continuar"); Console.ReadKey(); Console.Clear(); }