Exemplo n.º 1
0
 public Ingreso(DateTime fechaIngreso, double descuento, double costo, Atraccion atraccion)
 {
     this.fechaIngreso = fechaIngreso;
     this.descuento    = descuento;
     this.costo        = costo;
     this.atraccion    = atraccion;
 }
Exemplo n.º 2
0
 public void AsignarAtraccion(Atraccion atraccion)
 {
     encargado = atraccion;
 }
Exemplo n.º 3
0
 public Empleado(string nombre, DateTime fechaNacimiento, long docID) : base(nombre, fechaNacimiento, docID)
 {
     encargado = null;
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Bienvenidos al Sistema");
            List <Persona>        personas      = new List <Persona>();
            List <Atraccion>      atracciones   = new List <Atraccion>();
            List <ReporteCostos>  reporteCostos = new List <ReporteCostos>();
            PersistenciaAtraccion prAtraccion   = new PersistenciaAtraccion();
            //IpersistenciaAtraccion iprAtraccion = new prAtraccionExcel();


            //iprAtraccion.ActualizarInfoAtr(atracciones); //Asegura que la informacion acerca de las atracciones se va actualizar cada que se inicie el programa

            int opcion = default;

            do
            {
                try
                {
                    Menu();

                    switch (opcion = int.Parse(Console.ReadLine()))
                    {
                    case 1:
                        GenerarReporte(personas, atracciones);
                        break;

                    case 2:
                        //Registrar una persona general y pregunta si es usuario o empleado
                        Console.WriteLine("¿Usuario o empleado? [1] o [2]");
                        int tipoPersona = int.Parse(Console.ReadLine());
                        Console.WriteLine("Por favor, ingrese su nombre");
                        string nombre = Console.ReadLine();
                        Console.WriteLine("Por favor, ingrese su documento de identidad");
                        long docID = long.Parse(Console.ReadLine());
                        Console.WriteLine("Por favor, ingrese su fecha de nacimiento");
                        DateTime fechaNacimiento = SolicitarFecha();

                        if (tipoPersona == 1)
                        {
                            Console.WriteLine("Por favor, ingrese su estatura (En cm. Sin puntos ni comas)");
                            double estatura = double.Parse(Console.ReadLine());
                            personas.Add(new Usuario(nombre, fechaNacimiento, docID, estatura));
                            Console.WriteLine("Se ha registrado el usuario con éxito y se le ha asignado una manilla con un saldo de $0");
                        }
                        else if (tipoPersona == 2)
                        {
                            personas.Add(new Empleado(nombre, fechaNacimiento, docID));

                            Console.WriteLine("Se ha registrado un empleado con éxito");
                        }


                        break;

                    case 3:
                        personas.Sort((s1, s2) => s1.GetType().Name.CompareTo(s2.GetType().Name));
                        personas.Reverse();
                        Console.WriteLine("Escoja a cuál usuario desea recargar la manilla:");
                        ConsultarInfoUsuarios(personas);
                        int usuarioEscogido = int.Parse(Console.ReadLine()) - 1;
                        Console.WriteLine("¿Cuánto dinero desea recargar?");
                        double  saldoRecarga = double.Parse(Console.ReadLine());
                        Usuario usuario      = personas[usuarioEscogido] as Usuario;
                        usuario.Dueño.RecargarManilla(saldoRecarga);
                        Console.WriteLine("Se ha recargado con éxito!");
                        break;

                    case 4:

                        Console.WriteLine("¿Qué tipo de atracción es? 1. Mecánica/ 2. Acuática / 3. Virtual");
                        int tipoAtraccion = int.Parse(Console.ReadLine());
                        if (tipoAtraccion != 1 && tipoAtraccion != 2 && tipoAtraccion != 3)
                        {
                            Console.WriteLine("Ha ocurrido un error. Vuelva a intentarlo.");
                            return;
                        }
                        Console.WriteLine("Por favor, ingrese el código");
                        string codigo = Console.ReadLine();
                        Console.WriteLine("Por favor, ingrese el nombre");
                        string nombreAtraccion = Console.ReadLine();
                        Console.WriteLine("Por favor, ingrese el límite de edad");
                        int limite_de_edad = int.Parse(Console.ReadLine());
                        Console.WriteLine("Por favor, ingrese el límite de estatura");
                        double limite_de_estatura = double.Parse(Console.ReadLine());
                        Console.WriteLine("Por favor, ingrese el costo");
                        double costo = double.Parse(Console.ReadLine());
                        Console.WriteLine("Por favor, ingrese una descripción de la atracción");
                        string    descripcion = Console.ReadLine();
                        Atraccion atr         = null;
                        if (tipoAtraccion == 1)
                        {
                            atr = new Mecanica("MC" + codigo, nombreAtraccion, limite_de_edad, limite_de_estatura, costo, descripcion);
                            Console.WriteLine("Se ha registrado una atracción mecánica con éxito.");
                        }
                        else if (tipoAtraccion == 2)
                        {
                            atr = new Acuatica("AC" + codigo, nombreAtraccion, limite_de_edad, limite_de_estatura, costo, descripcion);

                            Console.WriteLine("Se ha registrado una atracción acuática con éxito.");
                        }
                        else if (tipoAtraccion == 3)
                        {
                            atr = new Acuatica("AC" + codigo, nombreAtraccion, limite_de_edad, limite_de_estatura, costo, descripcion);

                            Console.WriteLine("Se ha registrado una atracción virtual con éxito.");
                        }
                        atracciones.Add(atr);

                        prAtraccion.RegistrarAtraccion(atr);
                        break;

                    case 5:

                        ListarAtracciones(atracciones);
                        int atraccionSeleccionada = int.Parse(Console.ReadLine()) - 1;
                        ConsutarInfoAtraccion(atracciones[atraccionSeleccionada]);
                        break;

                    case 6:
                        ConsultarInfoUsuarios(personas);
                        break;

                    case 7:
                        ConsultarInfoEmpleados(personas);
                        break;

                    case 8:
                        //Pregunta la atraccion a la que le quiere asignar el empleado
                        Console.WriteLine("Escoja la atracción que quiere asignar al empleado: ");
                        ListarAtracciones(atracciones);
                        int atrSeleccionada = int.Parse(Console.ReadLine()) - 1;
                        //Organiza la lista de personas separando usuarios y empleados
                        personas.Sort((s1, s2) => s1.GetType().Name.CompareTo(s2.GetType().Name));
                        Console.WriteLine("Escoja el empleado a asignar la atracción ");

                        //llama  la lista de empleados
                        ConsultarInfoEmpleados(personas);
                        int      emplSeleccionado = int.Parse(Console.ReadLine()) - 1;
                        Empleado empleado         = personas[emplSeleccionado] as Empleado; //Convierte la persona en empleado para poder acceder a su metodo
                        empleado.AsignarAtraccion(atracciones[atrSeleccionada]);            //Le asigna la atracción
                        Console.WriteLine("Atraccion asignada con éxito");

                        break;

                    case 9:
                        ListarAtracciones(atracciones);
                        break;

                    case 10:
                        personas.Sort((s1, s2) => s1.GetType().Name.CompareTo(s2.GetType().Name));
                        personas.Reverse();
                        ConsultarInfoUsuarios(personas);

                        Console.WriteLine("Escoja el usuario para ingresar a la atracción: ");
                        int usrEscogido = int.Parse(Console.ReadLine()) - 1;
                        ListarAtracciones(atracciones);
                        Console.WriteLine("Escoja la atracción");
                        int atraccion = int.Parse(Console.ReadLine()) - 1;

                        Usuario usr = personas[usrEscogido] as Usuario;


                        bool ingreso = atracciones[atraccion].Ingresar(usr);


                        break;
                    }
                }
                catch (Exception e)
                {
                    Console.ForegroundColor = ConsoleColor.Red;

                    Console.WriteLine("Error: " + e.Message);
                }
            } while (opcion != 0);
        }
Exemplo n.º 5
0
 static void ConsutarInfoAtraccion(Atraccion atraccion)
 {
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine("\nTipo: " + atraccion.GetType().Name + "\nCódigo: " + atraccion.Codigo + "\nNombre: " + atraccion.Nombre + "\nCosto: " + atraccion.Costo + "\nLimite de edad: " + atraccion.Limite_de_edad + "\nLimite estatura:" + atraccion.Limite_de_estatura + "\nDescripcion general:" + atraccion.Descripcion + "\nEstado:" + atraccion.ConsultarEstado());
     Console.WriteLine();
 }