public void Main() { Console.Beep(800, 500); Console.ForegroundColor = ConsoleColor.White; bool automatic; Console.Write("Iniciar Con Datos Automaticos? (Y/N): "); if (Console.ReadLine() == "Y") { automatic = true; } else { automatic = false; } if (automatic == false) { goto noAuto; } #region Vehiculo vehiculo1 = new Vehiculo("001", "A", 1200, false, false, true); Vehiculo vehiculo2 = new Vehiculo("002", "F", 2300, false, false, true); Vehiculo vehiculo3 = new Vehiculo("003", "E", 2300); Vehiculo vehiculo4 = new Vehiculo("004", "A", 98610, true, true, true); Vehiculo vehiculo5 = new Vehiculo("005", "A", 990, false, false, true); Vehiculo vehiculo6 = new Vehiculo("006", "A", 253300, true, true, true); Dictionary <Vehiculo, int> diccionarioStock = new Dictionary <Vehiculo, int> { { vehiculo1, 3 }, { vehiculo2, 8 }, { vehiculo3, 8 }, { vehiculo4, 8 }, { vehiculo5, 8 }, { vehiculo6, 8 }, }; Sucursal sucursal1 = new Sucursal("S001", new List <Vehiculo>() { vehiculo1, vehiculo2, vehiculo3, vehiculo4 , vehiculo5, vehiculo6 }, diccionarioStock); Persona persona1 = new Persona("P0001", new List <string> { "B" }); Empresa empresa1 = new Empresa("E0001", new List <string> { "F", "A", "E" }); Institucion institucion1 = new Institucion("I0001", new List <string> { "A", "B", "C" }); Accesorio accesorio1 = new Accesorio("A001", 210); Accesorio accesorio2 = new Accesorio("A002", 2864); listaClientes.Add(persona1); listaClientes.Add(institucion1); listaClientes.Add(empresa1); listaVehiculos.Add(vehiculo1); listaVehiculos.Add(vehiculo2); listaVehiculos.Add(vehiculo3); listaVehiculos.Add(vehiculo4); listaVehiculos.Add(vehiculo5); listaVehiculos.Add(vehiculo6); listaAccesorios.Add(accesorio1); listaAccesorios.Add(accesorio2); listaSucursal.Add(sucursal1); Transaccion transaccion1 = new Transaccion(1, persona1, vehiculo1, sucursal1, listaAccesorios, 2000, 4); listaTransacciones.Add(transaccion1); #endregion noAuto: while (true) { CommandInterface(); } }
public void RealizaTransaccion(Cliente cliente) { Console.Clear(); int precio = 0; Console.WriteLine("INICIO TRANSACCION"); Console.Write("Selecciones Auto u otro Vehiculo (A/O) >: "); string opAuto = Console.ReadLine(); if (opAuto == "A") { bool asientos = false; bool dvd = false; bool electrico = false; Console.Write("Desea Agregar Corrida Extra de Asientos O Maletero grande? (C/M) >: "); string opAsiento = Console.ReadLine(); Console.Write("Desea que posea DVD? (Y/N) >: "); string opDVD = Console.ReadLine(); Console.Write("Desea que sea electrico? (Y/N) >: "); string opElectrico = Console.ReadLine(); if (opAsiento == "C") { asientos = true; } if (opDVD == "Y") { dvd = true; } if (opElectrico == "Y") { electrico = true; } List <Vehiculo> autosFiltrados1 = listaVehiculos.Where(x => x.corridaAsientoExtra == asientos).ToList <Vehiculo>(); List <Vehiculo> autosFiltrados2 = autosFiltrados1.Where(x => x.esElectrico == electrico).ToList <Vehiculo>(); List <Vehiculo> autosFiltrados3 = autosFiltrados2.Where(x => x.tieneDVD == dvd).ToList <Vehiculo>(); Console.WriteLine("--Mostrando Vehiculos--"); foreach (Vehiculo vehiculo1 in autosFiltrados3) { if (vehiculo1.tipoVehiculo != "A") { continue; } Console.WriteLine($"ID: {vehiculo1.id}"); Console.WriteLine($"\tCorrida Extra: {vehiculo1.corridaAsientoExtra}\n" + $"\tMaletero grande: {!vehiculo1.corridaAsientoExtra}\n" + $"\tElectrico: {vehiculo1.esElectrico}\n" + $"\tPosee DVD: {vehiculo1.tieneDVD}\n"); Console.WriteLine($"ID: {vehiculo1.id} Permiso: {vehiculo1.tipoVehiculo}" + $" Precio: {vehiculo1.precio}\n"); } Console.WriteLine("Seleccione ID del Vehiculo:"); goto afterPrintVehiculos; } Console.WriteLine("Seleccione ID del Vehiculo:"); ImprimirVehiculos(); afterPrintVehiculos: Console.Write(">: "); string idVehiculo = Console.ReadLine(); Vehiculo vehiculo = (listaVehiculos.Find(x => x.id == idVehiculo)); precio += vehiculo.precio; Console.WriteLine("Seleccione ID de Sucursal:"); ImprimirSucursales(); Console.Write(">: "); string idSucursal = Console.ReadLine(); Sucursal sucursal = (listaSucursal.Find(x => x.id == idSucursal)); List <Accesorio> listaAccesorioArrendar = new List <Accesorio>(); ImprimirAccesorios(); Console.WriteLine("0 Para detener"); while (true) { errorAccesorio: string idAccesorio = Console.ReadLine(); if (idAccesorio == "0") { break; } Accesorio accesorio = (listaAccesorios.Find(x => x.id == idAccesorio)); if (accesorio == null) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error"); Console.Beep();; goto errorAccesorio; } listaAccesorioArrendar.Add(accesorio); precio += accesorio.precio; } Console.Write("Tiempo de arriendo (dias) >: "); int tiempoArriendo = Convert.ToInt32(Console.ReadLine()); bool manejable = cliente.Manejable(vehiculo.tipoVehiculo); bool stock = (sucursal.diccionarioStock[vehiculo] > 0); if (vehiculo.tipoVehiculo == "F") { if ((cliente.GetType() == typeof(Organizacion)) || (cliente.GetType() == typeof(Institucion))) { manejable = false; } if (cliente.GetType() == typeof(Empresa)) { if (manejable) { double probabilidad = (new Random()).NextDouble(); Console.WriteLine("PROB: " + probabilidad.ToString()); if (!(probabilidad <= 0.63)) { manejable = false; } } } } if (vehiculo.tipoVehiculo == "E") { if (cliente.GetType() == typeof(Persona)) { manejable = false; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Persona No puede Arrendar!"); Console.Beep(); } if ((cliente.GetType() == typeof(Empresa)) || (cliente.GetType() == typeof(Organizacion)) || (cliente.GetType() == typeof(Institucion))) { double probabilidad = (new Random()).NextDouble(); if ((cliente.GetType() == typeof(Empresa))) { if (!(probabilidad <= 0.8)) { manejable = false; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Municipalidad No Ha Otorgado"); Console.Beep(); } } if ((cliente.GetType() == typeof(Organizacion))) { if (!(probabilidad <= 0.35)) { manejable = false; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Municipalidad No Ha Otorgado"); Console.Beep(); } } if ((cliente.GetType() == typeof(Institucion))) { if (!(probabilidad <= 0.58)) { manejable = false; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Municipalidad No Ha Otorgado"); Console.Beep(); } } Console.WriteLine("Probabilidad " + probabilidad.ToString()); } } int id = listaIdTransaccion.Count + 1; if (manejable && stock) { Transaccion transaccion = new Transaccion(id, cliente, vehiculo, sucursal, listaAccesorioArrendar, precio, tiempoArriendo); listaTransacciones.Add(transaccion); listaIdTransaccion.Add(id); Console.WriteLine("Transaccion Exitosa!..."); ImprimirTransacciones(); Console.ReadKey(); //return transaccion; } else { Transaccion transaccion = new Transaccion(id, cliente, vehiculo, sucursal, listaAccesorioArrendar, precio, tiempoArriendo); Console.WriteLine("Transaccion Fallida!..."); Console.Beep(); Console.ReadKey(); //return transaccion; } }