/// <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");
            }
        }
Exemplo n.º 5
0
        /// <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();
        }
Exemplo n.º 8
0
        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();
        }