static void Main(string[] args) { bool x = true; IFormatter formatter = new BinaryFormatter(); Console.WriteLine("Bienvenido"); while (x == true) { Console.WriteLine("Desea utilizar archivo para cargar?(Y/N)"); string respuesta = Console.ReadLine(); switch (respuesta) { case "Y": Console.Clear(); try { Stream streamp = new FileStream("empresa.bin", FileMode.Open, FileAccess.Read); Empresa newemp = (Empresa)formatter.Deserialize(streamp); Console.WriteLine(newemp.nombre); Console.WriteLine(); Console.WriteLine(newemp.rut); Console.WriteLine(); foreach (Area area in newemp.divisions) { Console.WriteLine(); Console.WriteLine(area.nombre + " " + "Encargado:" + " " + area.encargado.nombre + " " + area.encargado.apellido); foreach (Departamento departamento in area.departamentos) { Console.WriteLine(); Console.WriteLine(departamento.nombre + " " + "Encargado:" + " " + departamento.encargado.nombre + " " + departamento.encargado.apellido); foreach (Seccion seccion in departamento.seccions) { Console.WriteLine(); Console.WriteLine(seccion.nombre + " " + "Encargado:" + " " + seccion.encargado.nombre + " " + seccion.encargado.apellido); foreach (Bloque bloque in seccion.bloques) { Console.WriteLine(); Console.WriteLine(bloque.nombre); Console.WriteLine("Personal:"); foreach (Persona persona in bloque.personal) { Console.WriteLine(""); Console.WriteLine(persona.nombre); Console.WriteLine(persona.apellido); Console.WriteLine(persona.rut); Console.WriteLine(persona.cargo); } } } } } streamp.Close(); } catch (FileNotFoundException e) { Console.WriteLine(e.Message); Thread.Sleep(2000); goto case "N"; } Console.WriteLine("Archivo cargado"); Console.ReadKey(); break; case "N": Console.Clear(); Console.WriteLine("Ingrese nombre de la empresa:"); string nombre = Console.ReadLine(); Console.WriteLine("Ingrese rut de la empresa"); string rut = Console.ReadLine(); Persona p1 = new Persona("Juan", "Perez", "20.162.432-4", "Personal"); Persona p5 = new Persona("Rodrigo", "Diaz", "19.156.422-4", "Personal"); Persona p6 = new Persona("Albert", "Sans", "19.326.443-4", "Personal"); Persona p7 = new Persona("Manue", "Guid", "19.156.422-4", "Personal"); Persona p2 = new Persona("Matias", "Eliot", "20.213.234-5", "Encargado de Seccion"); Persona p3 = new Persona("Felipe", "toro", "20.166.432-4", "Encargado de Departamento"); Persona p4 = new Persona("Francisco", "Rios", "20.146.432-4", "Encargado de Area"); List <Persona> personas = new List <Persona>(); List <Persona> personas2 = new List <Persona>(); List <Bloque> bloques = new List <Bloque>(); List <Seccion> seccions = new List <Seccion>(); List <Departamento> departamentos = new List <Departamento>(); List <Area> areas = new List <Area>(); List <Division> divisions = new List <Division>(); personas.Add(p1); personas.Add(p5); personas2.Add(p6); personas2.Add(p7); Bloque b1 = new Bloque("bloque1", personas); Bloque b2 = new Bloque("bloque2", personas2); bloques.Add(b1); bloques.Add(b2); Seccion s1 = new Seccion("seccion1", p2, bloques); seccions.Add(s1); Departamento d1 = new Departamento("departamento1", p3, seccions); departamentos.Add(d1); Area a1 = new Area("area1", p4, departamentos); divisions.Add(a1); Empresa emp = new Empresa(nombre, rut, divisions); Stream stream = new FileStream("empresa.bin", FileMode.Create, FileAccess.Write); formatter.Serialize(stream, emp); stream.Close(); Console.WriteLine("Archivo creado"); Thread.Sleep(1000); break; default: Console.WriteLine("Respuesta no valida"); break; } } }
static void Main(string[] args) { int a = -1; List <Empresa> Lista_empresas = new List <Empresa>(); while (a != 0) { Console.WriteLine("Bienvenido:\n1. Para crear una nueva empresa\n2. Para leer empresas creadas previamente\n3. Mostrar informacion empresas\n0. Para salir."); a = Convert.ToInt32(Console.ReadLine()); if (a == 1) { Console.WriteLine("Ingrese el nombre de la empresa"); string nombre = Console.ReadLine(); Console.WriteLine("Ingrese el rut de la empresa"); string rut = Console.ReadLine(); Empresa empresa = new Empresa(nombre, rut); Division division = new Division("Nombre Division", new Persona("Nombre 1", "Apellido 1", "Rut 1", "Encargado Division")); Area area = new Area("Nombre Area", new Persona("Nombre 2", "Apellido 2", "Rut 2", "Encargado Area")); Departamento departamento = new Departamento("Nombre Departamento", new Persona("Nombre 3", "Apellido 3", "Rut 3", "Encargado Departamento")); Seccion seccion = new Seccion("Nombre Seccion", new Persona("Nombre 4", "Apellido 4", "Rut 4", "Encargado Seccion 4")); Bloque bloque_1 = new Bloque("Nombre bloque 1", new Persona("Nombre 5", "Apellido 5", "Rut 5", "Cargo 5")); Bloque bloque_2 = new Bloque("Nombre bloque 2", new Persona("Nombre 6", "Apellido 6", "Rut 6", "Cargo 6")); bloque_1.Personal.Add(new Persona("Nombre 7", "Apellido 7", "Rut 7", "Empleado 1")); bloque_1.Personal.Add(new Persona("Nombre 8", "Apellido 8", "Rut 8", "Empleado 2")); bloque_2.Personal.Add(new Persona("Nombre 9", "Apellido 9", "Rut 9", "Empleado 1")); bloque_2.Personal.Add(new Persona("Nombre 10", "Apellido 10", "Rut 10", "Empleado 2")); seccion.Lista_Bloques.Add(bloque_1); seccion.Lista_Bloques.Add(bloque_2); departamento.Lista_Secciones.Add(seccion); area.Lista_Departamentos.Add(departamento); division.Lista_Areas.Add(area); empresa.Lista_de_divisiones.Add(division); Lista_empresas.Add(empresa); Console.WriteLine("Empresa creada correctamente"); } else if (a == 2) { try { FileStream fs = new FileStream("Empresas.bin", FileMode.Open); BinaryFormatter formatter = new BinaryFormatter(); Lista_empresas = (List <Empresa>)formatter.Deserialize(fs); Console.WriteLine("Empresas agregadas correctamente"); fs.Close(); } catch (Exception) { Console.WriteLine("No hay empresas creadas, cree una."); Console.WriteLine("Ingrese el nombre de la empresa"); string nombre = Console.ReadLine(); Console.WriteLine("Ingrese el rut de la empresa"); string rut = Console.ReadLine(); Empresa empresa = new Empresa(nombre, rut); Division division = new Division("Nombre Division", new Persona("Nombre 1", "Apellido 1", "Rut 1", "Encargado Division")); Area area = new Area("Nombre Area", new Persona("Nombre 2", "Apellido 2", "Rut 2", "Encargado Area")); Departamento departamento = new Departamento("Nombre Departamento", new Persona("Nombre 3", "Apellido 3", "Rut 3", "Encargado Departamento")); Seccion seccion = new Seccion("Nombre Seccion", new Persona("Nombre 4", "Apellido 4", "Rut 4", "Encargado Seccion 4")); Bloque bloque_1 = new Bloque("Nombre bloque 1", new Persona("Nombre 5", "Apellido 5", "Rut 5", "Cargo 5")); Bloque bloque_2 = new Bloque("Nombre bloque 2", new Persona("Nombre 6", "Apellido 6", "Rut 6", "Cargo 6")); bloque_1.Personal.Add(new Persona("Nombre 7", "Apellido 7", "Rut 7", "Empleado 1")); bloque_1.Personal.Add(new Persona("Nombre 8", "Apellido 8", "Rut 8", "Empleado 2")); bloque_2.Personal.Add(new Persona("Nombre 9", "Apellido 9", "Rut 9", "Empleado 1")); bloque_2.Personal.Add(new Persona("Nombre 10", "Apellido 10", "Rut 10", "Empleado 2")); seccion.Lista_Bloques.Add(bloque_1); seccion.Lista_Bloques.Add(bloque_2); departamento.Lista_Secciones.Add(seccion); area.Lista_Departamentos.Add(departamento); division.Lista_Areas.Add(area); empresa.Lista_de_divisiones.Add(division); Lista_empresas.Add(empresa); Console.WriteLine("Empresa creada correctamente"); Console.WriteLine("Empresa agregada correctamente"); } } else if (a == 3) { if (Lista_empresas.Count() == 0) { Console.WriteLine("No hay empresas creadas."); } else { foreach (var item in Lista_empresas) { Console.WriteLine(item.Informacion()); } } } else if (a == 0) { FileStream fs = new FileStream("Empresas.bin", FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(fs, Lista_empresas); fs.Close(); break; } else { Console.WriteLine("Opcion incorrecta, intente nuevamente"); } } }