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;
                }
            }
        }
Exemplo n.º 2
0
        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();
        }