static void Main(string[] args) { lEnvios terrestre = new Terrestre(); lEnvios aereo = new Aereo(); lEnvios tren = new Tren(); lEnvios barco = new Barco(); lEmpresas fedex = new FEDEXSerice(barco); lEmpresas dhl = new DHL(aereo); lEmpresas dhlBarco = new DHL(barco); lEmpresas estafeta = new Estafeta(tren); fedex.RecogerPedido(); fedex.EnviarPedido(); fedex.EntregarPedido(); Console.WriteLine("\n"); dhl.RecogerPedido(); dhl.EnviarPedido(); dhl.EntregarPedido(); Console.WriteLine("\n"); dhlBarco.RecogerPedido(); dhlBarco.EnviarPedido(); dhlBarco.EntregarPedido(); Console.WriteLine("\n"); estafeta.RecogerPedido(); estafeta.EnviarPedido(); estafeta.EntregarPedido(); Console.ReadLine(); }
static void Main(string[] args) { lBuscarMejorOpcion buscarMejorOpcion = new BuscarMejorOpcion(); lAsignarDatosEnvio lasignarDatosEnvio = new AsignarDatosEnvio(); Context context = new Context(); lConvertirTipoDato convertirTipoDato = new CovertirTipoDatoService(); double dTiempoTraslado = 0; decimal TiempoTraslado = 0; decimal dCostoEnvio = 0; string cExpresion1 = ""; string cExpresion2 = ""; string cExpresion3 = ""; string cExpresion4 = ""; string cExpresion5 = ""; DateTime dtFechaEntrega = new DateTime(); DateTime dtHoy = DateTime.Now; lLeerArchivoTexto Lector = new LeerArchivoTexto(); lEmpresas empresa = null; lEnvios transporte = null; lEnvios aereo = new Avion() { dVelocidadEntrega = 600, dCostoEnvio = 10, cNombre = "Avion" }; lEnvios tren = new Tren() { dVelocidadEntrega = 80, dCostoEnvio = 5, cNombre = "Tren" }; lEnvios barco = new Barco() { dVelocidadEntrega = 46, dCostoEnvio = 1, cNombre = "Barco" }; lEnvios bici = new Bici() { dVelocidadEntrega = 1, dCostoEnvio = 3, cNombre = "Bici" }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); lEmpresas dhl = new DHL(new List <lEnvios>() { aereo, barco }, 40, "DHL"); lEmpresas estafeta = new Estafeta(new List <lEnvios>() { tren }, 20, "Estafeta"); lEmpresas upc = new UPC(new List <lEnvios>() { bici }, 50, "UPC"); List <lEmpresas> lstEmpresas = new List <lEmpresas>() { fedex, dhl, estafeta, upc }; List <lEnvios> lstTransportes = new List <lEnvios>() { aereo, tren, barco, bici }; List <string> lines = Lector.LeerArchivo("Pedidos.txt"); foreach (string line in lines) { string[] cInformacion = line.Split(','); lasignarDatosEnvio.AsignarEmpresa(cInformacion[3], ref empresa, lstEmpresas); lasignarDatosEnvio.AsignarTransporte(cInformacion[4], ref transporte, lstTransportes); if (empresa != null) { Pedido initialState = new DesactivarState(); State.State entPedido = new State.State(initialState, cInformacion[0], cInformacion[1], convertirTipoDato.ConvertirStringADecimal(cInformacion[2]), empresa, transporte, Convert.ToDateTime(cInformacion[5])); initialState.setContext(entPedido); TiempoTraslado = empresa.TiempoTraslado(entPedido); if (TiempoTraslado > 0) { dTiempoTraslado = convertirTipoDato.ConvertirDecimalADouble(TiempoTraslado); dtFechaEntrega = empresa.FechaEntrega(dTiempoTraslado, entPedido); dCostoEnvio = empresa.CostoEnvio(entPedido); Console.WriteLine(buscarMejorOpcion.ObtenerMejorOpcion(lstEmpresas, empresa, entPedido, dCostoEnvio)); Expresion1 expresion1 = new Expresion1(); context.setStrategy(expresion1); cExpresion1 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); Expresion2 expresion2 = new Expresion2(); context.setStrategy(expresion2); cExpresion2 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); Expresion3 expresion3 = new Expresion3(); context.setStrategy(expresion3); cExpresion3 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); Expresion4 expresion4 = new Expresion4(); context.setStrategy(expresion4); cExpresion4 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); Expresion5 expresion5 = new Expresion5(); context.setStrategy(expresion5); cExpresion5 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); if (entPedido.state.ToString() == "State.ActivarState") { System.Console.ForegroundColor = ConsoleColor.Green; } else { System.Console.ForegroundColor = ConsoleColor.Yellow; } Console.WriteLine($"Tu paquete {cExpresion1} de {entPedido.cOrigen} y {cExpresion2} a {entPedido.cDestino} {cExpresion3} {cExpresion5} y {cExpresion4} un costo de {dCostoEnvio} (Cualquier reclamación con {cInformacion[3]})."); } } Console.WriteLine(); } Console.ReadLine(); }