public static void Main(string[] args) { List <Empresa> empresas = new List <Empresa>(); int eleccion = 0; Console.WriteLine("Bienvenido !"); while (eleccion != 3) { Console.WriteLine("Desea utilizar un archivo para cargar la información de la empresa?"); Console.WriteLine("1.- Si"); Console.WriteLine("2.- No"); Console.WriteLine("3.- Salir"); eleccion = Convert.ToInt32(Console.ReadLine()); switch (eleccion) { case 1: Console.Clear(); try { empresas = Load(); showEmpresas(empresas); } catch (FileNotFoundException) { List <Division> divisiones2 = new List <Division>(); Console.WriteLine("No se ha encontrado un archivo para la informacion de la empresa."); Console.Write("Ingrese el Nombre de la Empresa: "); string nombreEmp2 = Console.ReadLine(); Console.Write("Ingrese el RUT de la Empresa: "); string RUTEmp2 = Console.ReadLine(); Console.WriteLine("Se va a crear la empresa de forma automatica ..."); //AREA Persona encargadoArea2 = new Persona("Cristiano", "Ronaldo", "20.074.782-8", "Engargado Area"); Area area2 = new Area("Area", encargadoArea2, null); divisiones2.Add(area2); //DEPARTAMENTO Persona encargadoDepa2 = new Persona("Lionel", "Messi", "23.204.345-5", "Encargado Departamento"); Departamento departamento2 = new Departamento("Departamento", encargadoDepa2, null); divisiones2.Add(departamento2); //SECCION Persona encargadoSec2 = new Persona("Elon", "Musk", "18.094.234-1", "Encargado Seccion"); Seccion seccion2 = new Seccion("Seccion", encargadoSec2, null); divisiones2.Add(seccion2); //BLOQUE1 List <Persona> personalB1 = new List <Persona>(); Persona encargadoB1 = new Persona("Humberto", "Suazo", "15.657.778-2", "Encargado Bloque 1"); Persona personal1B1 = new Persona("Juan", "Perez", "17.232.688-6", "Personal 1 "); Persona personal2B1 = new Persona("Diego", "Soto", "17.343.777-2", "Personal 2 "); Persona personal3B1 = new Persona("Pablo", "Poblete", "10.666.448-3", "Personal 3"); Persona personal4B1 = new Persona("Sofia", "Alcalde", "20.074.788-9", "Personal 4"); Persona personal5B1 = new Persona("Javier", "Coll", "19.346.448-8", "Personal 5"); personalB1.Add(personal1B1); personalB1.Add(personal2B1); personalB1.Add(personal3B1); personalB1.Add(personal4B1); personalB1.Add(personal5B1); Bloque bloque1 = new Bloque("Bloque 1", encargadoB1, personalB1); divisiones2.Add(bloque1); //BLOQUE2 Persona encargadoB2 = new Persona("Alexis", "Sanchez", "18.343.566-7", "Encargado Bloque 2"); List <Persona> personalB2 = new List <Persona>(); Persona personal1B2 = new Persona("Vicente", "Perez", "20.999.688-6", "Personal 1 "); Persona personal2B2 = new Persona("Rodrigo", "Olguin", "23.455.788-K", "Personal 2 "); Persona personal3B2 = new Persona("Nicolas", "Valencia", "24.666.666-5", "Personal 3"); Persona personal4B2 = new Persona("Emilia", "Segura", "22.899.056-9", "Personal 4"); Persona personal5B2 = new Persona("Vicente", "Poblete", "20.346.448-8", "Personal 5"); personalB2.Add(personal1B2); personalB2.Add(personal2B2); personalB2.Add(personal3B2); personalB2.Add(personal4B2); personalB2.Add(personal5B2); Bloque bloque2 = new Bloque("Bloque 2", encargadoB2, personalB2); divisiones2.Add(bloque2); Empresa empresa2 = new Empresa(nombreEmp2, RUTEmp2, divisiones2); empresas.Add(empresa2); Save(empresas); Console.WriteLine("Empresa creada correctamente"); } break; case 2: Console.Clear(); List <Division> divisiones = new List <Division>(); Console.Write("Ingrese el Nombre de la Empresa: "); string nombreEmp = Console.ReadLine(); Console.Write("Ingrese el RUT de la Empresa: "); string RUTEmp = Console.ReadLine(); // AREA Console.Clear(); string elec = ""; Console.WriteLine("Desea Agregar un Area? (s/n)"); elec = Console.ReadLine(); switch (elec) { case "s": Console.WriteLine("Ingrese Nombre del encargado del Area: "); string nombreEA = Console.ReadLine(); Console.WriteLine("Ingrese Apellido del encargado del Area: "); string apellidoEA = Console.ReadLine(); Console.WriteLine("Ingrese RUT del encargado del Area: "); string rutEA = Console.ReadLine(); Persona encargadoArea = new Persona(nombreEA, apellidoEA, rutEA, "Encargado Area"); Area area = new Area("Area", encargadoArea, null); divisiones.Add(area); break; case "n": break; default: Console.WriteLine("Opción no valida"); break; } // DEPARTAMENTO Console.Clear(); string elec2 = ""; Console.WriteLine("Desea Agregar un Departamento? (s/n)"); elec2 = Console.ReadLine(); switch (elec2) { case "s": Console.WriteLine("Ingrese Nombre del encargado del Departamento: "); string nombreED = Console.ReadLine(); Console.WriteLine("Ingrese Apellido del encargado del Departamento: "); string apellidoED = Console.ReadLine(); Console.WriteLine("Ingrese RUT del encargado del Departamento: "); string rutED = Console.ReadLine(); Persona encargadoDepa = new Persona(nombreED, apellidoED, rutED, "Encargado Departamento"); Departamento departamento = new Departamento("Departamento", encargadoDepa, null); divisiones.Add(departamento); break; case "n": break; default: Console.WriteLine("Opción no valida"); break; } // SECCION Console.Clear(); string elec3 = ""; Console.WriteLine("Desea Agregar una SECCION? (s/n)"); elec3 = Console.ReadLine(); switch (elec3) { case "s": Console.WriteLine("Ingrese Nombre del encargado de la Seccion: "); string nombreES = Console.ReadLine(); Console.WriteLine("Ingrese Apellido del encargado de la Seccion: "); string apellidoES = Console.ReadLine(); Console.WriteLine("Ingrese RUT del encargado de la Seccion: "); string rutES = Console.ReadLine(); Persona encargadoSec = new Persona(nombreES, apellidoES, rutES, "Encargado Seccion"); Seccion seccion = new Seccion("Seccion", encargadoSec, null); divisiones.Add(seccion); break; case "n": break; default: Console.WriteLine("Opción no valida"); break; } // BLOQUE Console.Clear(); string elec4 = ""; Console.WriteLine("Desea Agregar BLOQUES? (s/n)"); elec4 = Console.ReadLine(); switch (elec4) { case "s": int cantb = 0; Console.WriteLine("Cuantos Bloques desdea agregar?"); cantb = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < cantb; i++) { List <Persona> personalBloq = new List <Persona>(); Console.WriteLine("Ingrese Nombre del encargado del Bloque " + (i + 1) + " : "); string nombreEB = Console.ReadLine(); Console.WriteLine("Ingrese Apellido del encargado del Bloque " + (i + 1) + " : "); string apellidoEB = Console.ReadLine(); Console.WriteLine("Ingrese RUT del encargado del Bloque " + (i + 1) + " : "); string rutEB = Console.ReadLine(); Persona encargadoBloq = new Persona(nombreEB, apellidoEB, rutEB, "Encargado Bloque" + (i + 1)); Console.WriteLine(""); Console.WriteLine("Cuanto personal desea agregar? "); int cantp = Convert.ToInt32(Console.ReadLine()); for (int j = 0; j < cantp; j++) { Console.WriteLine("Ingrese nombre del Personal " + (j + 1) + " : "); string nombrePer = Console.ReadLine(); Console.WriteLine("Ingrese apellido del Personal " + (j + 1) + " : "); string apellidoPer = Console.ReadLine(); Console.WriteLine("Ingrese RUT del Personal " + (j + 1) + " : "); string rutPer = Console.ReadLine(); Persona personalB = new Persona(nombrePer, apellidoPer, rutPer, "Personal" + (j + 1)); personalBloq.Add(personalB); Console.WriteLine(""); } Bloque bloque = new Bloque("Bloque" + (i + 1), encargadoBloq, personalBloq); divisiones.Add(bloque); } break; case "n": break; default: Console.WriteLine("Opción no valida"); break; } Console.WriteLine(""); Console.WriteLine("Empresa creada correctamente"); Empresa empresa = new Empresa(nombreEmp, RUTEmp, divisiones); empresas.Add(empresa); Save(empresas); break; case 3: Console.Clear(); Console.WriteLine("Saliendo del programa ..."); break; default: Console.Clear(); Console.WriteLine("Opción no valida"); break; } } }
static void Main() { List <Empresa> empresas = new List <Empresa>(); Persona personal; Persona persona; Departamento departamento; Empresa newempresa; Seccion seccion; List <Persona> personales; Bloque bloque; string name; string lastname; int rut; string position; string switcher = "0"; string stopper = "3"; while (switcher != stopper) { Console.WriteLine("-----------------------------------------Bienvenidos-----------------------------------------"); Console.WriteLine("Si desea:\n\t(1) Utilizar un archivo para cargar la información de la empresa\n\t(2) No utilizar un archivo para cargar la información de la empresa\n\t(3) Salir del programa\n"); switcher = Console.ReadLine(); Console.Clear(); switch (switcher) { case "1": try { empresas = LoadEmpresa(); int ne = 1; foreach (Empresa e in empresas) { Console.WriteLine($"-----------------------------------------EMPRESA {ne}-----------------------------------------"); Console.WriteLine($"Nombre empresa: {e.Name}\nRut empresa: {e.Rut}\n\n\n"); foreach (Division d in e.Divisiones) { if (d.Name == "Area") { Console.WriteLine($"Nombre división: {d.Name}\nNombre encargado: {d.InCharge.Name} {d.InCharge.Lastname}\n"); Console.WriteLine(""); Console.WriteLine(""); foreach (Departamento dep in d.Departamentos) { Console.WriteLine($"Nombre división: {dep.Name}\nNombre encargado: {dep.InCharge.Name} {dep.InCharge.Lastname}\n"); Console.WriteLine(""); Console.WriteLine(""); foreach (Seccion s in dep.Secciones) { Console.WriteLine($"Nombre división: {s.Name}\nNombre encargado: {s.InCharge.Name} {s.InCharge.Lastname}\n"); Console.WriteLine(""); Console.WriteLine(""); int nb = 1; foreach (Bloque b in s.Bloques) { int nem = 1; Console.WriteLine($"Nombre división: {b.Name} {nb}\nNombre encargado: {b.InCharge.Name} {b.InCharge.Lastname}\n"); foreach (Persona p in b.Personas) { Console.WriteLine($"Nombre empleado {nem}: {p.Name}\nApellido empleado: {p.Lastname}\nRut empleado: {p.Rut}\nCargo empleado: {p.Position}\n"); nem++; } Console.WriteLine(""); Console.WriteLine(""); nb++; } } } } else { Console.WriteLine($"Nombre división: {d.Name}\nNombre encargado: {d.InCharge.Name} {d.InCharge.Lastname}\n"); Console.WriteLine(""); Console.WriteLine(""); foreach (Seccion s in d.Secciones) { Console.WriteLine($"Nombre división: {s.Name}\nNombre encargado: {s.InCharge.Name} {s.InCharge.Lastname}\n"); Console.WriteLine(""); Console.WriteLine(""); int nb = 1; foreach (Bloque b in s.Bloques) { int nem = 1; Console.WriteLine($"Nombre división: {b.Name} {nb}\nNombre encargado: {b.InCharge.Name} {b.InCharge.Lastname}\n"); foreach (Persona p in b.Personas) { Console.WriteLine($"Nombre empleado {nem}: {p.Name}\nApellido empleado: {p.Lastname}\nRut empleado: {p.Rut}\nCargo empleado: {p.Position}\n"); nem++; } Console.WriteLine(""); Console.WriteLine(""); nb++; } } } } Console.ReadKey(); Console.Clear(); ne++; } } catch (FileNotFoundException) { Console.WriteLine("------------------------------------No se ha encontrado el archivo de la empresa------------------------------------ "); Console.WriteLine("Ingrese el nombre de la empresa:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el rut de la empresa (Sin puntos ni guiones):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } newempresa = new Empresa(name, rut); Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Ingrese el nombre del encargado de departamento: "); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del encargado de departamento: "); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del encargado de departamento (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } position = "Jefe departamento"; persona = new Persona(name, lastname, rut, position); departamento = new Departamento(persona); Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Ingrese el nombre del encargado de sección: "); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del encargado de sección: "); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del encargado de sección (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } position = "Jefe sección"; persona = new Persona(name, lastname, rut, position); seccion = new Seccion(persona); departamento.Secciones.Add(seccion); Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Ingrese el nombre del encargado de bloque 1: "); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del encargado de bloque 1: "); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del encargado de bloque 1 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } position = "Jefe bloque 1"; persona = new Persona(name, lastname, rut, position); personales = new List <Persona>(); Console.WriteLine(""); Console.WriteLine("Ingrese el nombre del personal 1:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del personal 1:"); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del personal 1 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } Console.WriteLine("Ingrese el cargo del personal 1:"); position = Console.ReadLine(); personal = new Persona(name, lastname, rut, position); personales.Add(personal); Console.WriteLine(""); Console.WriteLine("Ingrese el nombre del personal 2:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del personal 2:"); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del personal 2 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } Console.WriteLine("Ingrese el cargo del personal 2:"); position = Console.ReadLine(); personal = new Persona(name, lastname, rut, position); personales.Add(personal); bloque = new Bloque(persona, personales); seccion.Bloques.Add(bloque); Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Ingrese el nombre del encargado de bloque 2: "); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del encargado de bloque 2: "); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del encargado de bloque 2 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } position = "Jefe bloque 2"; persona = new Persona(name, lastname, rut, position); Console.WriteLine(""); personales = new List <Persona>(); Console.WriteLine("Ingrese el nombre del personal 1:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del personal 1:"); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del personal 1 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } Console.WriteLine("Ingrese el cargo del personal 1:"); position = Console.ReadLine(); personal = new Persona(name, lastname, rut, position); personales.Add(personal); Console.WriteLine(""); Console.WriteLine("Ingrese el nombre del personal 2:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del personal 2:"); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del personal 2 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } Console.WriteLine("Ingrese el cargo del personal 2:"); position = Console.ReadLine(); personal = new Persona(name, lastname, rut, position); personales.Add(personal); bloque = new Bloque(persona, personales); seccion.Bloques.Add(bloque); newempresa.Divisiones.Add(departamento); empresas.Add(newempresa); SaveEmpresa(empresas); empresas = new List <Empresa>(); Thread.Sleep(1000); Console.Clear(); } break; case "2": Console.WriteLine("Ingrese el nombre de la empresa:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el rut de la empresa (Sin puntos ni guiones):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } newempresa = new Empresa(name, rut); Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Ingrese el nombre del encargado de departamento: "); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del encargado de departamento: "); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del encargado de departamento (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } position = "Jefe departamento"; persona = new Persona(name, lastname, rut, position); departamento = new Departamento(persona); Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Ingrese el nombre del encargado de sección: "); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del encargado de sección: "); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del encargado de sección (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } position = "Jefe sección"; persona = new Persona(name, lastname, rut, position); seccion = new Seccion(persona); departamento.Secciones.Add(seccion); Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Ingrese el nombre del encargado de bloque 1: "); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del encargado de bloque 1: "); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del encargado de bloque 1 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } position = "Jefe bloque 1"; persona = new Persona(name, lastname, rut, position); personales = new List <Persona>(); Console.WriteLine(""); Console.WriteLine("Ingrese el nombre del personal 1:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del personal 1:"); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del personal 1 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } Console.WriteLine("Ingrese el cargo del personal 1:"); position = Console.ReadLine(); personal = new Persona(name, lastname, rut, position); personales.Add(personal); Console.WriteLine(""); Console.WriteLine("Ingrese el nombre del personal 2:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del personal 2:"); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del personal 2 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } Console.WriteLine("Ingrese el cargo del personal 2:"); position = Console.ReadLine(); personal = new Persona(name, lastname, rut, position); personales.Add(personal); bloque = new Bloque(persona, personales); seccion.Bloques.Add(bloque); Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Ingrese el nombre del encargado de bloque 2: "); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del encargado de bloque 2: "); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del encargado de bloque 2 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } position = "Jefe bloque 2"; persona = new Persona(name, lastname, rut, position); Console.WriteLine(""); personales = new List <Persona>(); Console.WriteLine("Ingrese el nombre del personal 1:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del personal 1:"); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del personal 1 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } Console.WriteLine("Ingrese el cargo del personal 1:"); position = Console.ReadLine(); personal = new Persona(name, lastname, rut, position); personales.Add(personal); Console.WriteLine(""); Console.WriteLine("Ingrese el nombre del personal 2:"); name = Console.ReadLine(); Console.WriteLine("Ingrese el apellido del personal 2:"); lastname = Console.ReadLine(); Console.WriteLine("Ingrese el rut del personal 2 (Sin guiones ni puntos. Reemplace la k por un 0):"); rut = -1; while (rut == -1) { try { rut = int.Parse(Console.ReadLine()); if (rut < 1) { Console.WriteLine("Ingrese un rut válido:"); rut = -1; } } catch (FormatException) { Console.WriteLine("Formato invalido\nIngrese un numero como rut:"); } catch (OverflowException) { Console.WriteLine("Formato invalido\nIngrese un rut de menos dígitos:"); } } Console.WriteLine("Ingrese el cargo del personal 2:"); position = Console.ReadLine(); personal = new Persona(name, lastname, rut, position); personales.Add(personal); bloque = new Bloque(persona, personales); seccion.Bloques.Add(bloque); newempresa.Divisiones.Add(departamento); empresas.Add(newempresa); SaveEmpresa(empresas); empresas = new List <Empresa>(); Thread.Sleep(1000); Console.Clear(); break; case "3": if (empresas.Count() != 0) { SaveEmpresa(empresas); Thread.Sleep(1000); } switcher = "3"; Thread.Sleep(1000); break; default: Console.WriteLine("Ingrese una opción valida\n"); Thread.Sleep(1000); Console.Clear(); break; } } }
public static void serializar(Empresa empresa) { //Empresa empresa = new Empresa(Nombre, Rut); Console.WriteLine("Por favor ahora ingrese los nombres de las siguientes divisiones con sus encargados"); Console.WriteLine("Departamento"); string Departamento = Console.ReadLine(); Console.WriteLine("Encargado del Departamento:"); Console.WriteLine("Nombre"); string Nombre_Encargado_Departamento = Console.ReadLine(); Console.WriteLine("Apellido"); string Apellido_Encargado_Departamento = Console.ReadLine(); int Rut_Encargado_Departamento = 0; while (Rut_Encargado_Departamento == 0) { Console.WriteLine("ingrese rut"); int.TryParse(Console.ReadLine(), out Rut_Encargado_Departamento); } Console.WriteLine("Sección "); string Seccion = Console.ReadLine(); Console.WriteLine("Encargado de la Sección"); Console.WriteLine("Nombre"); string Nombre_Encargado_Seccion = Console.ReadLine(); Console.WriteLine("Apellido"); string Apellido_Encargado_Seccion = Console.ReadLine(); int Rut_Encargado_Seccion = 0; while (Rut_Encargado_Seccion == 0) { Console.WriteLine("ingrese rut"); int.TryParse(Console.ReadLine(), out Rut_Encargado_Seccion); } Console.WriteLine("Bloque 1"); string Bloque1 = Console.ReadLine(); Console.WriteLine("Encargado del Bloque 1:"); Console.WriteLine("Nombre"); string Nombre_Encargado_Bloque1 = Console.ReadLine(); Console.WriteLine("Apellido"); string Apellido_Encargado_Bloque1 = Console.ReadLine(); int Rut_Encargado_Bloque1 = 0; while (Rut_Encargado_Bloque1 == 0) { Console.WriteLine("ingrese rut"); int.TryParse(Console.ReadLine(), out Rut_Encargado_Bloque1); } Console.WriteLine("personal del bloque1 numero 1"); Console.WriteLine("Nombre"); string Nombre_Personal1_Bloque1 = Console.ReadLine(); Console.WriteLine("Apellido"); string Apellido_Personal1_Bloque1 = Console.ReadLine(); int Rut_Personal1_Bloque1 = 0; while (Rut_Personal1_Bloque1 == 0) { Console.WriteLine("ingrese rut"); int.TryParse(Console.ReadLine(), out Rut_Personal1_Bloque1); } Console.WriteLine("personal del bloque1 numero 2"); Console.WriteLine("Nombre"); string Nombre_Personal2_Bloque1 = Console.ReadLine(); Console.WriteLine("Apellido"); string Apellido_Personal2_Bloque1 = Console.ReadLine(); int Rut_Personal2_Bloque1 = 0; while (Rut_Personal2_Bloque1 == 0) { Console.WriteLine("ingrese rut"); int.TryParse(Console.ReadLine(), out Rut_Personal2_Bloque1); } Console.WriteLine("Bloque 2"); string Bloque2 = Console.ReadLine(); Console.WriteLine("Encargado del Bloque 2:"); Console.WriteLine("Nombre"); string Nombre_Encargado_Bloque2 = Console.ReadLine(); Console.WriteLine("Apellido"); string Apellido_Encargado_Bloque2 = Console.ReadLine(); int Rut_Encargado_Bloque2 = 0; while (Rut_Encargado_Bloque2 == 0) { Console.WriteLine("ingrese rut"); int.TryParse(Console.ReadLine(), out Rut_Encargado_Bloque2); } Console.WriteLine("personal del bloque2 numero 1"); Console.WriteLine("Nombre"); string Nombre_Personal1_Bloque2 = Console.ReadLine(); Console.WriteLine("Apellido"); string Apellido_Personal1_Bloque2 = Console.ReadLine(); int Rut_Personal1_Bloque2 = 0; while (Rut_Personal1_Bloque2 == 0) { Console.WriteLine("ingrese rut"); int.TryParse(Console.ReadLine(), out Rut_Personal1_Bloque2); } Console.WriteLine("personal del bloque2 numero 2"); Console.WriteLine("Nombre"); string Nombre_Personal2_Bloque2 = Console.ReadLine(); Console.WriteLine("Apellido"); string Apellido_Personal2_Bloque2 = Console.ReadLine(); int Rut_Personal2_Bloque2 = 0; while (Rut_Personal2_Bloque2 == 0) { Console.WriteLine("ingrese rut"); int.TryParse(Console.ReadLine(), out Rut_Personal2_Bloque2); } Departamento departamento = new Departamento(Departamento); Persona departamento_persona = new Persona(Nombre_Encargado_Departamento, Apellido_Encargado_Departamento, Rut_Encargado_Departamento, "Encargado del Departamento"); empresa.add_division(departamento); empresa.persona.Add(departamento_persona); Sección seccion = new Sección(Seccion); Persona seccion_persona = new Persona(Nombre_Encargado_Seccion, Apellido_Encargado_Seccion, Rut_Encargado_Seccion, "Encargado del Departamento"); empresa.add_division(seccion); empresa.persona.Add(seccion_persona); Bloque bloque1 = new Bloque(Bloque1); Persona bloque1_persona = new Persona(Nombre_Encargado_Bloque1, Apellido_Encargado_Bloque1, Rut_Encargado_Bloque1, "Encargado del Bloque 1"); Persona bloque1_persona_personal1 = new Persona(Nombre_Personal1_Bloque1, Apellido_Personal1_Bloque1, Rut_Personal1_Bloque1, "Personal bloque1"); Persona bloque1_persona_personal2 = new Persona(Nombre_Personal2_Bloque1, Apellido_Personal2_Bloque1, Rut_Personal2_Bloque1, "Personal bloque1"); empresa.add_division(bloque1); empresa.persona.Add(bloque1_persona); empresa.personal.Add(bloque1_persona_personal1); empresa.personal.Add(bloque1_persona_personal2); Bloque bloque2 = new Bloque(Bloque2); Persona bloque2_persona = new Persona(Nombre_Encargado_Bloque2, Apellido_Encargado_Bloque2, Rut_Encargado_Bloque2, "Encargado del Bloque 2"); Persona bloque2_persona_personal1 = new Persona(Nombre_Personal1_Bloque2, Apellido_Personal1_Bloque2, Rut_Personal1_Bloque2, "Personal bloque2"); Persona bloque2_persona_personal2 = new Persona(Nombre_Personal2_Bloque2, Apellido_Personal2_Bloque2, Rut_Personal2_Bloque2, "Personal bloque2"); empresa.add_division(bloque2); empresa.persona.Add(bloque2_persona); empresa.personal.Add(bloque2_persona_personal1); empresa.personal.Add(bloque2_persona_personal2); IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("empresa.bin", FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, empresa); stream.Close(); }