static void Main(string[] args) { ///EVENTOS AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; AppDomain.CurrentDomain.ProcessExit += (o, e) => Console.Beep(2000, 500); // Multicast : Se ejecutan los 2 eventos de diferente manera //AppDomain.CurrentDomain.ProcessExit -= AccionDelEvento; // saco ese evento con el - es decir no se ejecuta //Este es un evento de finalizacion del programa // El EVENTO se genera en cualquier momento que termine la ejecucion var engine = new EscuelaEngine(); engine.Inicializar(); // ImprimirCursos(engine.escuela); WriteLine("Hola"); var dic = new Dictionary <int, string>(); dic.Add(2, "joaquin"); //agregando mediante funcion add, donde 2 es la llave y joaquin la definicion dic[0] = "tomas"; //asi agregamos al dic la llave 0 son valor "tomas" Console.WriteLine("Imprimimos el Diccionario"); // foreach (var keydic in dic) // { // Console.WriteLine($"llave: {keydic.Key} valor: {keydic.Value}"); // } var dicc = engine.GetDiccionarioDeObjetos(); Console.WriteLine(); //var dic2 = engine.GetDiccionarioDeObjetos(); //engine.ImprimirDiccionario(dic2,true); var reporteardor = new Reporteador(dicc); var listEval = reporteardor.GetListaEvaluaciones(); var listaMaterias = reporteardor.GetListaMaterias(); var DiccionarioEvaluaciones = reporteardor.GetDicEvaluacionesXMateria(); var promedio = reporteardor.GetPromedioAlumnosPorMateria(); var newEval = new Evaluacion(); string nombre, notaString; WriteLine("Ingrese nombre de la evaluacion"); nombre = ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { throw new ArgumentException("Debe ingresar un nombre"); } else { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre fue ingresado correctamente"); } WriteLine("Ingrese nota de la evaluacion"); notaString = ReadLine(); if (string.IsNullOrWhiteSpace(notaString)) { WriteLine("Debe ingresar una nota"); WriteLine("Saliendo del programa"); } else { try { newEval.Nota = float.Parse(notaString); if (newEval.Nota < 0 || newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 0 y 5"); //este throw se usa para que salga del programa y no continue } WriteLine("La nota fue ingresada correctamente"); } catch (ArgumentOutOfRangeException arge) //se le puede hacer un objeto { WriteLine(arge.Message); WriteLine("La nota debe ser un numero entre 0 y 5"); } catch (Exception) { WriteLine("El valor de la nota no es un numero valido"); } //dependiendo el tipo de exception ejecuta un catch o el otro // las excepciones tiene un orden en cascada, EL ORDEN ES IMPORTANTE finally { //permite atrapar excepciones inesperaddas o q no podemos controlar //Se ejecuta siempre no importa donde termine el programa siempre se ejecuta, //siempre antes de terminar el programa se ejecuta el finally se ejecuta y luego termina el programa Console.Beep(4500, 500); WriteLine("FINALLY"); } } }
//private static Cursos cursotemp; static void Main(string[] args) { AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.Beep(2000, 1000, 1); var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("BIENVENIDOS A LA ESCUELA"); //Printer.Beep(10000, cantidad:10); //imprimirCursosEscuela(engine.Escuela); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); var evalList = reporteador.GetListaEvaluaciones(); var listaAsig = reporteador.GetListaAsignaturas(); var listaEvalXAsignatura = reporteador.GetDicEvaluacionesXAsig(); var listaProemdioXAsig = reporteador.GetPromeAlumPorAsignatura(); var mejorPromedio = reporteador.GetMejoresPromedioXAsig("Matematicas", 10); Printer.WriteTitle("Captura de una Evaluacion por Consola"); var newEval = new Evaluaciones(); string nombre, notaString; float nota; WriteLine("Ingrese el nombre de la Evaluacion"); Printer.PrecioneENTER(); nombre = ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { Printer.WriteTitle("El valor del nombre no puede ser vacio"); WriteLine("Saliendo del programa"); } else { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre de la Evaluacion ha sido ingresado correctamente"); } WriteLine("Ingrese la nota de la Evaluacion"); Printer.PrecioneENTER(); notaString = ReadLine(); if (string.IsNullOrWhiteSpace(notaString)) { Printer.WriteTitle("El valor de la nota no puede ser vacio"); WriteLine("Saliendo del programa"); } else { try { newEval.Nota = float.Parse(notaString); if (newEval.Nota < 0 || newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 0 y 5"); } WriteLine("La nota de la Evaluacion ha sido ingresado correctamente"); } catch (ArgumentOutOfRangeException arge) { Printer.WriteTitle(arge.Message); WriteLine("Saliendo del programa"); } catch (System.Exception) { Printer.WriteTitle("El valor de la nota no parece es un numero valido"); WriteLine("Saliendo del programa"); } finally { Printer.WriteTitle("FINALLY"); Printer.Beep(2500, 500, 3); } } /* foreach (var item in listaProemdioXAsig) * { * foreach (var alum in item.Value) * { * var tmp = alum as Alumnos; * * } * } */ /* var dictmp = engine.GetDiccionarioObjetos(); * * engine.ImprimirDiccionario(dictmp,true); */ /* Printer.WriteTitle("Diccionario"); * var dic = new Dictionary<String, String>(); * dic["luna"] = "cuerpo celeste que gira alrededor de la tierra"; * WriteLine(dic["luna"]); * /* dic.Add("luna", "Protagonista de soy Luna"); * WriteLine("luna"); */ //var obj = new ObjetoEscuelaBase(); /* Printer.DrawLine(20); * Printer.DrawLine(20); * Printer.DrawLine(20); * Printer.WriteTitle("Pruebas de Polimorfismo"); * var alumnoTest = new Alumnos{Nombre = "Nahuel Schimpf"}; * Printer.WriteTitle("Alumno"); * WriteLine($"Alumno: {alumnoTest.Nombre}"); * WriteLine($"Id: {alumnoTest.UniqueId}"); * WriteLine($"Typo: {alumnoTest.GetType()}"); * * ObjetoEscuelaBase ob = alumnoTest; * WriteLine("ObjetoEscuela"); * WriteLine($"Nombre: {ob.Nombre}"); * WriteLine($"Id: {ob.UniqueId}"); * WriteLine($"Typo: {ob.GetType()}"); * * var evaluacion = new Evaluaciones(){Nombre="Evaluacion de Matematicas",Nota=4.5f}; * Printer.WriteTitle("Evaluacion"); * WriteLine($"Evaluacion: {evaluacion.Nombre}"); * WriteLine($"Id: {evaluacion.Nota}"); * WriteLine($"Id: {evaluacion.UniqueId}"); * WriteLine($"Typo: {evaluacion.GetType()}"); * * //ob = evaluacion; * WriteLine("ObjetoEscuela"); * WriteLine($"Nombre: {ob.Nombre}"); * WriteLine($"Id: {ob.UniqueId}"); * WriteLine($"Typo: {ob.GetType()}"); * * if(ob is Alumnos) * { * Alumnos alumnoRecuperado = (Alumnos)ob; * } * * Alumnos alumnoRecuperado2 = ob as Alumnos;*/ /* var escuela = new Escuela("Platzi Academy", 2012,TiposEscuela.Primaria, * ciudad: "Bogota", pais: "Colombia"); * * // es una coleccion * var listaCursos = new List<Cursos>(){ * new Cursos(){Nombre = "101", Jornada = TipoJornada.Mañana}, * new Cursos(){Nombre = "201", Jornada = TipoJornada.Mañana}, * new Cursos(){Nombre = "301", Jornada = TipoJornada.Mañana} * }; * escuela.Curso = listaCursos; * escuela.Curso.Add( new Cursos{Nombre = "102", Jornada = TipoJornada.Tarde}); * escuela.Curso.Add(new Cursos { Nombre = "202", Jornada = TipoJornada.Tarde}); * * // otra coleccion * var otraColeccion = new List<Cursos>(){ * new Cursos(){Nombre = "401", Jornada = TipoJornada.Mañana}, * new Cursos(){Nombre = "501", Jornada = TipoJornada.Mañana}, * new Cursos(){Nombre = "501", Jornada = TipoJornada.Tarde} * }; * * //cursotemp = new Cursos{Nombre = "101-Vacacional", Jornada = TipoJornada.Noche}; * escuela.Curso.AddRange(otraColeccion); * //escuela.Curso.Add(cursotemp); */ /* imprimirCursosEscuela(escuela); * //WriteLine("Curso hash" + cursotemp.GetHashCode()); * //escuela.Curso.Remove(cursotemp); * * // una manera de buscar el indice y borrarlo * //Predicate<Cursos> miAlgoritmo = Predicado; * //escuela.Curso.RemoveAll(Predicado); * * // otra manera * escuela.Curso.RemoveAll(delegate (Cursos cur) * { * return cur.Nombre == "301"; * }); * * // otra manera mas reducida, llamada expresion lambda * escuela.Curso.RemoveAll((cur)=> cur.Nombre == "501" && cur.Jornada == TipoJornada.Mañana); */ // array /* escuela.Curso = new Cursos[]{ * new Cursos(){Nombre = "101"}, * new Cursos(){Nombre = "201"}, * new Cursos(){Nombre = "301"} * }; */ // otra manera de asignacion /* escuela.Pais = "Colombia"; * escuela.Ciudad = "Bogota"; */ // una forma de declarar el arreglo /* var arregloCursos = new Cursos[]{ * new Cursos() * { * Nombre = "101" * * }, * new Cursos() * { * Nombre = "201" * * }, * new Cursos() * { * Nombre = "301" * * } * }; */ // otra forma /* Cursos[] arregloCursos = { * new Cursos(){Nombre = "101"}, * new Cursos(){Nombre = "201"}, * new Cursos(){Nombre = "301"} * }; */ /* Console.WriteLine(escuela); * System.Console.WriteLine("While ==================="); * imprimirArregloWhile(arregloCursos); * System.Console.WriteLine("Do While ==================="); * imprimirArregloDoWhile(arregloCursos); * System.Console.WriteLine("For ==================="); * imprimirArregloFor(arregloCursos); * System.Console.WriteLine("ForEach ==================="); * imprimirArregloForEach(arregloCursos); */ }