private static void ModifyExRoom() { Console.Clear(); Console.WriteLine("---> Modificar Sala de exhibiciones\n"); Console.WriteLine("\n 1 - Sala Estándar"); Console.WriteLine("\n 2 - Sala Premium"); Console.WriteLine("\n 3 - Sala VIP"); Console.Write("\n Ingrese la sala que quiere modificar: "); do { validateOption(); if (option < 1 || option > 3) { Console.Write("\nDebe ingresar una opcion correcta: "); } } while (option != 1 && option != 2 && option != 3); Rooms room = null; switch (option) { case 1: room = Program.stdRoom; Console.Clear(); Console.WriteLine("---> Modificar Sala Estándar\n"); break; case 2: room = Program.premRoom; Console.Clear(); Console.WriteLine("---> Modificar Sala Premium\n"); break; case 3: room = Program.vipRoom; Console.Clear(); Console.WriteLine("---> Modificar Sala VIP\n"); break; } Console.WriteLine("\nA ---> Modificar Precio"); Console.WriteLine("\nB ---> Limpiar Sala"); Console.Write("\nElija opcion deseada: "); string opt = Console.ReadLine(); while (opt != "A" && opt != "B" && opt != "a" && opt != "b") { Console.Write("\nElija una opción correcta: "); opt = Console.ReadLine(); } if (opt == "A" || opt == "a") { Console.Write("\n\nIngresa el nuevo precio de la sala: $"); double newPrice = 0; do { while (!Double.TryParse(Console.ReadLine(), out newPrice)) { Console.Write("\nPrecio incorrecto, ingrese un nuevo precio: $"); } if (newPrice < 0) { Console.Write("\nPrecio incorrecto, ingrese un nuevo precio: $"); } } while (newPrice < 0); room.Price = newPrice; Console.WriteLine("\nPrecio actualizado exitosamente!"); } else { Console.WriteLine("\n\n¿Está seguro de que quiere borrar todos los tickets de la sala?"); Console.WriteLine(" Ingrese Y para sí o cualquier otra cosa para No"); string opt2 = ""; opt2 = Console.ReadLine(); if (opt2 == "Y" || opt2 == "y") { room.ClearRoom(); Console.WriteLine("\nSala limpiada exitosamente!"); } else { Console.WriteLine("\nOperación abortada"); } } }
public static void Option3() { Console.Clear(); Console.WriteLine("-----> Comprar Boletos <-----\n"); Console.Write("\nIngrese el ID de la pelicula a comprar: "); Movie movie = ExistMovie(Console.ReadLine()); if (movie != null) { double subtotal = 0; double total; Console.WriteLine("Pelicula Elegida"); Console.WriteLine("---------------------------------"); Console.WriteLine("ID Pelicula: {0}", movie.ID); Console.WriteLine("Titulo de la Pelicula: {0}", movie.Title); Console.WriteLine("Duración de la película: {0}", movie.Duration); Console.WriteLine("Tipo de la película: {0}", movie.Type); Console.WriteLine("---------------------------------"); Console.WriteLine("\nSucursales: "); if (BranchData.officeBranches.Count == 0) { Console.WriteLine("No existen sucursales disponibles en este momento."); return; } foreach (Branch office in BranchData.officeBranches) { Console.WriteLine("--------------------------------"); Console.WriteLine("ID de la sucursal: {0}", office.ID); Console.WriteLine("Nombre de la sucursal: {0}", office.Name); Console.WriteLine("--------------------------------"); } Branch selectOffice = null; Console.Write("Ingrese el ID de la sucursal: "); BranchAgain: string bID = Console.ReadLine(); foreach (Branch office in BranchData.officeBranches) { if (office.ID == bID) { selectOffice = office; break; } } if (selectOffice == null) { Console.WriteLine("Sucursal no encontrada. Ingrese nuevamente el ID: "); goto BranchAgain; } Console.WriteLine("\nSalas de exhibición:"); Console.WriteLine(" 1 - Estándar\n"); Console.WriteLine(" 2 - Premium\n"); Console.WriteLine(" 3 - VIP\n"); Console.WriteLine(" 4 - Autocine\n"); Console.Write("\nIngrese una opcion deseada: "); do { validateOption(); if (option < 1 || option > 4) { Console.WriteLine("Ingrese una opcion correcta: "); } } while (option < 1 || option > 4); Console.Write("\nIngrese la cantidad de boletos a comprar: "); int numOfTickets; do { while (!Int32.TryParse(Console.ReadLine(), out numOfTickets)) { Console.Write("\nIngrese una cantidad válida: "); } if (numOfTickets <= 0) { Console.Write("\nDebe ingresar una cantidad mayor a 0: "); } } while (numOfTickets <= 0); bool space = true; Rooms room = null; switch (option) { case 1: room = Program.stdRoom; break; case 2: room = Program.premRoom; break; case 3: room = Program.vipRoom; break; case 4: room = Program.driveIn; break; } if (option != 4) { space = room.ValidateSpaces(numOfTickets); } else { space = true; } if (space) { MovieTicket ticket = new MovieTicket(); ticket.ID = string.Format("T{0,0:D4}", Billboard.ticketIdentity); Billboard.ticketIdentity++; ticket.MovieName = movie.Title; ticket.TheatherName = "KODI-MAX"; ticket.Room = room; subtotal = room.Price * numOfTickets; ticket.Date = DateTime.Now; ticket.branch = selectOffice; Random rdn = new Random(); int countEmployees = 0; foreach (User user in UserRepository.Users) { if (Convert.ToChar(user.UserID.Substring(0, 1)) == 'E') { countEmployees++; } } if (countEmployees == 0) { ticket.EmployeeID = "V0000"; ticket.EmployeeName = "Empleado Virtual"; } else { int random = rdn.Next(1, countEmployees + 1); int countToSelect = 0; foreach (User user in UserRepository.Users) { if (Convert.ToChar(user.UserID.Substring(0, 1)) == 'E') { countToSelect++; if (countToSelect == random) { ticket.EmployeeID = user.UserID; ticket.EmployeeName = user.Name; break; } } } } for (int i = 0; i < numOfTickets; i++) { room.AddTicket(ticket); } double tax = Math.Round(subtotal * 0.3533, 2); double optPayment = 0; total = Math.Round(subtotal + tax, 2); Console.WriteLine("\n\n>Impresión del ticket<"); Console.WriteLine("------------------------------------------------------------------"); Console.WriteLine("Nombre del cine: {0}", ticket.TheatherName); Console.WriteLine("Nombre del empleado que lo atendió: {0}", ticket.EmployeeName); Console.WriteLine("ID del empleado que lo atendió: {0}", ticket.EmployeeID); Console.WriteLine("Fecha y hora de compra: {0}", ticket.Date); Console.WriteLine("Nombre de la pelicula: {0}", ticket.MovieName); Console.WriteLine("Nombre de la sucursal: {0}", ticket.branch.Name); if (option == 4) { Console.WriteLine("Modalidad: Autocine"); Console.WriteLine("Precio de parqueo: $1.50"); optPayment = 1.50; } else { Console.WriteLine("Modalidad: Sala normal"); Console.WriteLine("Sala: {0}", ticket.Room.Name); Console.WriteLine("Asientos: {0}", room.PrintSeats(ticket)); } Console.WriteLine("Subtotal: ${0}", Math.Round(subtotal, 2) + optPayment); Console.WriteLine("Impuesto aplicado (35.33%): ${0}", tax); Console.WriteLine("Total: ${0}", total); Console.WriteLine("------------------------------------------------------------------"); Again: Console.Write("\n\nIngrese el efectivo: $"); double payment; do { while (!Double.TryParse(Console.ReadLine(), out payment)) { Console.Write("Ingrese una cantidad válida: $"); } if (payment < 0) { Console.Write("Ingrese una cantidad válida: $"); } } while (payment < 0); if (payment == total) { Console.WriteLine("Cobro exacto, gracias por comprar en KODIMAX."); } else if (payment > total) { Console.WriteLine("Su cambio es ${0}, gracias por comprar en KODIMAX", Math.Round(payment - total, 2)); } else { Console.WriteLine("Pago insuficiente"); goto Again; } } else { Console.WriteLine("\nNo hay espacio suficiente en la sala para efectuar su compra."); } } else { Console.WriteLine("El ID de pelicula ingresado no existe"); } }