static void Main(string[] args) { Colectivo colectivo1 = new Colectivo("142", "Semtur", 1); Colectivo colectivo2 = new Colectivo("143", "Mixta", 1); Colectivo colectivo3 = new Colectivo("144", "Mixta", 1); Tarjeta tarjeta1 = new Tarjeta(false); Tarjeta tarjeta2 = new Tarjeta(true); Console.WriteLine("---------TARJETA 1---------"); tarjeta1.RecargarSaldo(368); Console.WriteLine("Saldo: " + tarjeta1.Saldo); tarjeta1.RecargarSaldo(196); Console.WriteLine("Saldo: " + tarjeta1.Saldo); tarjeta1.RecargarSaldo(5); Console.WriteLine("Saldo: " + tarjeta1.Saldo); Console.WriteLine(": " + tarjeta1.PagarBoleto(colectivo1, DateTime.Now.AddHours(-8))); Console.WriteLine(": " + tarjeta1.PagarBoleto(colectivo1, DateTime.Now.AddHours(-2))); Console.WriteLine(": " + tarjeta1.PagarBoleto(colectivo2, DateTime.Now.AddMinutes(-30))); Console.WriteLine(": " + tarjeta1.PagarBoleto(colectivo3, DateTime.Now.AddMinutes(-10))); Console.WriteLine(": " + tarjeta1.PagarBoleto(colectivo1, DateTime.Now)); Console.WriteLine(tarjeta1.ViajesDetalle()); Console.WriteLine(tarjeta1.ViajesTotal()); Console.WriteLine("Saldo: " + tarjeta1.Saldo); Console.WriteLine("---------TARJETA 2---------"); tarjeta2.RecargarSaldo(368); Console.WriteLine("Saldo: " + tarjeta2.Saldo); tarjeta2.RecargarSaldo(196); Console.WriteLine("Saldo: " + tarjeta2.Saldo); tarjeta2.RecargarSaldo(5); Console.WriteLine("Saldo: " + tarjeta2.Saldo); Console.WriteLine(": " + tarjeta2.PagarBoleto(colectivo1, DateTime.Now.AddHours(-8))); Console.WriteLine(": " + tarjeta2.PagarBoleto(colectivo1, DateTime.Now.AddHours(-2))); Console.WriteLine(": " + tarjeta2.PagarBoleto(colectivo2, DateTime.Now.AddMinutes(-30))); Console.WriteLine(": " + tarjeta2.PagarBoleto(colectivo3, DateTime.Now.AddMinutes(-10))); Console.WriteLine(": " + tarjeta2.PagarBoleto(colectivo1, DateTime.Now)); Console.WriteLine(tarjeta2.ViajesDetalle()); Console.WriteLine(tarjeta1.ViajesTotal()); Console.WriteLine("Saldo: " + tarjeta2.Saldo); Console.ReadKey(); }
public bool PagarBoleto(Colectivo Colectivo, DateTime FechaHoraViaje) { if (viajes != null && viajes.Count() > 0) { var ultimoViaje = viajes.OrderBy(v => v.Fecha.Date).Last(); TimeSpan diferenciaViajes = FechaHoraViaje - ultimoViaje.Fecha; if (ultimoViaje.ColectivoLinea != Colectivo.Linea && diferenciaViajes.TotalMinutes <= 60 && Transbordo) { if (MedioBoleto && 6 <= FechaHoraViaje.Hour && FechaHoraViaje.Hour <= 24) { /*Transbordo Medio Boleto*/ if (Saldo >= 0.96) { Saldo -= 0.96; Transbordo = false; Viaje viaje = new Viaje(FechaHoraViaje, Colectivo.Linea, Colectivo.Empresa, 0.96); viajes.Add(viaje); return true; } else { return false; } } else { /*Transbordo Comun*/ if (Saldo >= 1.90) { Saldo -= 1.90; Transbordo = false; Viaje viaje = new Viaje(FechaHoraViaje, Colectivo.Linea, Colectivo.Empresa, 1.90); viajes.Add(viaje); return true; } else { return false; } } } } if (MedioBoleto && 6 <= FechaHoraViaje.Hour && FechaHoraViaje.Hour <= 24) { /*Medio Boleto*/ if (Saldo >= 1.90) { Saldo -= 1.90; Transbordo = true; Viaje viaje = new Viaje(FechaHoraViaje, Colectivo.Linea, Colectivo.Empresa, 1.90); viajes.Add(viaje); return true; } else { return false; } } else { /*Boleto Comun*/ if (Saldo >= 5.75) { Saldo -= 5.75; Transbordo = true; Viaje viaje = new Viaje(FechaHoraViaje, Colectivo.Linea, Colectivo.Empresa, 5.75); viajes.Add(viaje); return true; } else { return false; } } }