public Ingreso(DateTime fechaIngreso, double descuento, double costo, Atraccion atraccion) { this.fechaIngreso = fechaIngreso; this.descuento = descuento; this.costo = costo; this.atraccion = atraccion; }
public void AsignarAtraccion(Atraccion atraccion) { encargado = atraccion; }
public Empleado(string nombre, DateTime fechaNacimiento, long docID) : base(nombre, fechaNacimiento, docID) { encargado = null; }
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); }
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(); }