public void ObtenerMejorOpcion_EnviarCostoDeEnvioAlto_MensajeConDiferenciaDePrecio() { //Arrange string cResultado = ""; lEnvios aereo = new Aereo() { dVelocidadEntrega = 600, dCostoEnvio = 10, cNombre = "Avion" }; lEnvios barco = new Maritimo() { dVelocidadEntrega = 46, dCostoEnvio = 1, cNombre = "Barco" }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); lEmpresas dhl = new DHL(new List <lEnvios>() { aereo, barco }, 40, "DHL"); List <lEmpresas> lstEmpresas = new List <lEmpresas>() { fedex, dhl }; BuscarMejorOpcion buscarMejorOpcion = new BuscarMejorOpcion(); DateTime dtHoy = Convert.ToDateTime("27-01-2020 12:00:00"); DateTime dtEntrega = Convert.ToDateTime("28-01-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "México", "USA", 2500, fedex, barco, dtHoy); //Act cResultado = buscarMejorOpcion.ObtenerMejorOpcion(lstEmpresas, dhl, entPedido, 5000); //Assert Assert.AreEqual("Si hubieras pedido en Fedex te hubiera costado 1250.0 mas barato", cResultado); }
public lEnvios buscarTransporte(JToken _TransporteSolicitado) { lEnvios Transporte = null; string cMedio = (string)_TransporteSolicitado["Medio"]; int cVelocidad = (int)_TransporteSolicitado["Velocidad"]; int cCostoPorKilometro = (int)_TransporteSolicitado["CostoPorKilometro"]; if (cMedio == "Marítimo") { Transporte = new Maritimo() { cNombre = "Maritimo" }; } else if (cMedio == "Terrestre") { Transporte = new Terrestre() { cNombre = "Terrestre" }; } else { Transporte = new Aereo() { cNombre = "Aereo" }; } Transporte.dCostoEnvio = cCostoPorKilometro; Transporte.dVelocidadEntrega = cVelocidad; return(Transporte); }
public void AsignarEmpresa_EnviarListaDeEmpresasQueNoContengaEmpresaSolicitada_EmpresaSolicitadaNoAsignada() { //Arrange AsignarDatosEnvio asignarDatosEnvio = new AsignarDatosEnvio(); lEnvios aereo = new Aereo() { dVelocidadEntrega = 600, dCostoEnvio = 10, cNombre = "Avion" }; lEnvios barco = new Maritimo() { dVelocidadEntrega = 46, dCostoEnvio = 1, cNombre = "Barco" }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); lEmpresas dhl = new DHL(new List <lEnvios>() { aereo, barco }, 40, "DHL"); lEmpresas empresa = null; List <lEmpresas> lstEmpresas = new List <lEmpresas>() { fedex, dhl }; //Act asignarDatosEnvio.AsignarEmpresa("Estafeta", ref empresa, lstEmpresas); //Assert Assert.AreEqual(null, empresa); }
public IMedioTransporte Create(string _medioTransporte) { var dto = lstMediosTransporteDTO.FirstOrDefault(f => f.Medio == _medioTransporte); var _nombreMedioTransporteEnum = (MedioTransporteEnum)System.Enum.Parse(typeof(MedioTransporteEnum), dto.Medio); IMedioTransporte factory; switch (_nombreMedioTransporteEnum) { case MedioTransporteEnum.Terrestre: factory = new Terrestre(dto.CostoPorKilometro, new TerrestreAjusteTiempo(lstTemporadas, dto.RetrasoPorDiaPorTemporada.TiemposRetraso), dto.Medio, dto.Velocidad); break; case MedioTransporteEnum.Marítimo: factory = new Maritimo(dto.CostoPorKilometro, new MaritimoAjusteCosto(lstTemporadas, dto.CostoAdicionalPorTemporada.Variaciones), new MaritimoAjusteTiempo(lstTemporadas, dto.VelocidadPorTemporada.Variaciones), dto.Medio, dto.Velocidad); break; case MedioTransporteEnum.Aéreo: factory = new Aereo(dto.CostoPorKilometro, dto.Medio, dto.Velocidad); break; default: throw new NotImplementedException($"No existe una implementación para el medio de transporte {_nombreMedioTransporteEnum.ToString()}."); } return(factory); }
public void ObtenerFechaEnvio_General_FechaEnviada() { IFormatProvider culture = new CultureInfo("ES-MX", true); DateTime FechaEnvio = DateTime.ParseExact("02/05/2020 12:00", "dd/MM/yyyy HH:mm", culture); var Sut = new Aereo(4000, FechaEnvio, configuraciones); DateTime Resultado = Sut.ObtenerFechaEnvio(); Assert.AreEqual(FechaEnvio, Resultado); }
public void ObtenerRecargo_CuatroMil_Ochocientos() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new Aereo(4000, DateTime.ParseExact("02/05/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); decimal Resultado = Sut.ObtenerRecargo(); Assert.AreEqual(800, Resultado); }
void ObtenerTiempoEntregaMinutos_CuatroMil_Cero() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new Aereo(4000, DateTime.ParseExact("02/05/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); decimal Resultado = Sut.ObtenerTiempoEntregaMinutos(); Assert.AreEqual(0, Resultado); }
public void ObtenerVelocidad_Seiscientos_Seiscientos() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new Aereo(4000, DateTime.ParseExact("02/03/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); decimal Resultado = Sut.ObtenerVelocidad(); Assert.AreEqual(600, Resultado); }
public void ObtenerCostoEnvio_CuatroMil_CuarentaMilOchocientos() { IFormatProvider culture = new CultureInfo("ES-MX", true); DateTime FechaEnvio = DateTime.ParseExact("02/05/2020 12:00", "dd/MM/yyyy HH:mm", culture); var Sut = new Aereo(4000, FechaEnvio, configuraciones); decimal Resultado = Sut.ObtenerCostoEnvio(); Assert.AreEqual(40800, Resultado); }
public void ObtieneCostoTransporte_22Febrero1200_12200()//Invierno { //Arrange ParametroCalculoMedioTransporteDTO param = new ParametroCalculoMedioTransporteDTO() { FechaCompra = new DateTime(2020, 2, 22), Distancia = 1200 }; List <RangoCosto> lstCostos = new List <RangoCosto>() { new RangoCosto(1m, null, 10m) }; var SUT = new Aereo(lstCostos); //ACT var costo = SUT.ObtieneCostoTransporte(param); //Assert Assert.AreEqual(12200m, costo); }
public void CalculaCalculaTiempoTraslado_1Escala_6() { var DOCcalculadorEscalas = new Mock <ICalculadorEscalas>(); ParametrosDTO parametros = new ParametrosDTO(); DateTime dtFechaPedido = new DateTime(2020, 02, 22); double dDistancia = 1200; parametros.dtFechaPedido = dtFechaPedido; parametros.dDistacia = dDistancia; DOCcalculadorEscalas.Setup(doc => doc.ObtenerEscalas(dDistancia)).Returns(1); var SUT = new Aereo(DOCcalculadorEscalas.Object); //ACT var regreso = SUT.CalculaTiempoTraslado(parametros); //ASSERT Assert.AreEqual(6, regreso); }
public void ObtieneCostoTransporte_10Octubre800_8000()//Otoño { //Arrange ParametroCalculoMedioTransporteDTO param = new ParametroCalculoMedioTransporteDTO() { FechaCompra = new DateTime(2020, 10, 10), Distancia = 800 }; List <RangoCosto> lstCostos = new List <RangoCosto>() { new RangoCosto(1m, null, 10m) }; var SUT = new Aereo(lstCostos); //ACT var costo = SUT.ObtieneCostoTransporte(param); //Assert Assert.AreEqual(8000m, costo); }
List <IEmpresa> ICrearInstanciaPaqueteriaFactory.CrearInstancia(string cClave) { List <IEmpresa> empresa = null; IMediosTransporte medioTransporte = null; switch (cClave) { case "MARITIMO": medioTransporte = new Maritimo(new CalculadorVelocidadMaritimo(new List <DTO.EstacionesDTO>(), new Estacion()), new CalculadorCostoEnvioMaritimo(new List <DTO.EstacionesDTO>(), new List <DTO.RangosDTO>(), new Estacion())); empresa = new List <IEmpresa>(); ParametrosDTO parametros = new ParametrosDTO(); empresa.Add(new Fedex(medioTransporte, new CalculadorMargenUtilidadCostoFedex(), new List <TiempoRepartoDTO>(), new ParametrosDTO())); empresa.Add(new DHL(medioTransporte, new CalculadorMargenUtilidadCostoDHL(), new List <TiempoRepartoDTO>(), new ParametrosDTO())); empresa.Add(new Estafeta(medioTransporte, new CalculadorMargenUtilidadCostoEstafeta(new List <RangosMargenDTO>()), new List <TiempoRepartoDTO>(), new ParametrosDTO())); break; case "TERRESTRE": medioTransporte = new Terrestre(new CalculadorCostoEnvioTerrestre(new List <RangosDTO>()), new CalculadorTiempoTrasladoTerrestre(new Estacion(), new List <EstacionesDTO>())); empresa = new List <IEmpresa>(); empresa.Add(new Fedex(medioTransporte, new CalculadorMargenUtilidadCostoFedex(), new List <TiempoRepartoDTO>(), new ParametrosDTO())); empresa.Add(new DHL(medioTransporte, new CalculadorMargenUtilidadCostoDHL(), new List <TiempoRepartoDTO>(), new ParametrosDTO())); empresa.Add(new Estafeta(medioTransporte, new CalculadorMargenUtilidadCostoEstafeta(new List <RangosMargenDTO>()), new List <TiempoRepartoDTO>(), new ParametrosDTO())); break; case "AEREO": medioTransporte = new Aereo(new CalculadorEscalas()); empresa = new List <IEmpresa>(); empresa.Add(new Fedex(medioTransporte, new CalculadorMargenUtilidadCostoFedex(), new List <TiempoRepartoDTO>(), new ParametrosDTO())); empresa.Add(new DHL(medioTransporte, new CalculadorMargenUtilidadCostoDHL(), new List <TiempoRepartoDTO>(), new ParametrosDTO())); break; //default: // empresa.Add(new Fedex(null, new CalculadorMargenUtilidadCostoFedex(), new List<TiempoRepartoDTO>(), new ParametrosDTO())); // empresa.Add(new DHL(null, new CalculadorMargenUtilidadCostoDHL(), new List<TiempoRepartoDTO>(), new ParametrosDTO())); // empresa.Add(new Estafeta(null, new CalculadorMargenUtilidadCostoEstafeta(new List<RangosMargenDTO>()), new List<TiempoRepartoDTO>(), new ParametrosDTO())); // break; } return(empresa); }
public void AsignarTransporte_EnviarListaDeTransporteQueContengaTransporteSolicitado_TransporteSolicitadoAsignado() { //Arrange AsignarDatosEnvio asignarDatosEnvio = new AsignarDatosEnvio(); lEnvios aereo = new Aereo() { dVelocidadEntrega = 600, dCostoEnvio = 10, cNombre = "Avion" }; lEnvios barco = new Maritimo() { dVelocidadEntrega = 46, dCostoEnvio = 1, cNombre = "Barco" }; List <lEnvios> lstEmpresas = new List <lEnvios>() { aereo, barco }; lEnvios transporte = null; //Act asignarDatosEnvio.AsignarTransporte("Avion", ref transporte, lstEmpresas); //Assert Assert.AreNotEqual(null, transporte); }
public void Ejecutar_EnviarFechaEntregaMayorSemanasAFechaHoy_SemanasFaltantes() { //Arrange string cResultado = ""; Expresion5 expresion5 = new Expresion5(); lEnvios Aereo = new Aereo() { dVelocidadEntrega = 800, dCostoEnvio = 1 }; lEmpresas dhl = new DHL(new List <lEnvios>() { Aereo }, 10, "DHL"); DateTime dtHoy = Convert.ToDateTime("15-02-2020 08:00:00"); DateTime dtEntrega = Convert.ToDateTime("06-03-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "China", "Cancún", 446400, dhl, Aereo, dtHoy); //Act cResultado = expresion5.Ejecutar(dtEntrega, dtHoy, entPedido); //Assert Assert.AreEqual("3 Semanas", cResultado); }
private void btnCaricamentoDati_Click_1(object sender, RoutedEventArgs e) { // Creo 5 aerei e li metto in una lista di Aerei // Utilizzo un generics, in modo da creare una collezione // che contegga oggetti omogenei Aereo AE1, AE2, AE3, AE4, AE5; AE1 = new Aereo("BOEING", "747", 400, 300, 6, "Motore", true, 900, 1000, "ALITALIA", "BO1ALI"); AE2 = new Aereo("AIRBUS", "A320", 350, 350, 6, "Motore", true, 1000, 1100, "LUFTHANSA", "AI20LU"); AE3 = new Aereo("AIRBUS", "A330", 500, 400, 6, "Motore", true, 1100, 1100, "KLM", "KL15AI"); AE4 = new Aereo("BOEING", "747", 400, 300, 6, "Motore", true, 900, 1000, "KLM", "KL747BO"); AE5 = new Aereo("BOEING", "737", 300, 300, 4, "Motore", false, 700, 800, "AMERICAN AIRLINES", "BO737AA"); ListaAerei.Add(AE1); ListaAerei.Add(AE2); ListaAerei.Add(AE3); ListaAerei.Add(AE4); ListaAerei.Add(AE5); // Creo 5 persone e le metto in una lista di Persona // Utilizzo un generics, in modo da creare una collezione // che contegga oggetti omogenei Persona P1, P2, P3, P4, P5; P1 = new Persona("Mario", "Rossi", "Italia", new DateTime(2000, 10, 10), Enumerazioni.Sesso.Maschio, Enumerazioni.TipoDocumento.Passaporto, "AAAA12345", "P01"); P2 = new Persona("Giuseppe", "Verdi", "Italia", new DateTime(1950, 4, 11), Enumerazioni.Sesso.Maschio, Enumerazioni.TipoDocumento.Passaporto, "AAAA22345", "P02"); P3 = new Persona("Luigi", "Neri", "Italia", new DateTime(1980, 5, 5), Enumerazioni.Sesso.Maschio, Enumerazioni.TipoDocumento.Passaporto, "BBBB12345", "P03"); P4 = new Persona("Maria", "Randi", "Italia", new DateTime(1988, 11, 11), Enumerazioni.Sesso.Femmina, Enumerazioni.TipoDocumento.Carta_Identita, "II456578", "P04"); P5 = new Persona("Mark", "Blackwood", "Inglese", new DateTime(1999, 8, 8), Enumerazioni.Sesso.Maschio, Enumerazioni.TipoDocumento.Passaporto, "HHAA12345", "P05"); ListaPersone.Add(P1); ListaPersone.Add(P2); ListaPersone.Add(P3); ListaPersone.Add(P4); ListaPersone.Add(P5); // Creo 5 aereoporti e li metto in una lista di Aereoporti // Utilizzo un generics, in modo da creare una collezione // che contegga oggetti omogenei Aeroporto AP1, AP2, AP3, AP4, AP5; AP1 = new Aeroporto("Marconi", "BOM", 30, 40, 20, "Italia", "Bologna", false, false); AP2 = new Aeroporto("Malpensa", "MAX", 50, 60, 40, "Italia", "Milano", false, true); AP3 = new Aeroporto("John Fitzgerald Kennedy", "JFK", 120, 90, 100, "USA", "New York", false, true); AP4 = new Aeroporto("Linate", "LIN", 50, 50, 30, "Italia", "Milano", true, false); AP5 = new Aeroporto("Charles De Gaulle", "CDG", 80, 50, 60, "Francia", "Parigi", true, false); ListaAereoporti.Add(AP1); ListaAereoporti.Add(AP2); ListaAereoporti.Add(AP3); ListaAereoporti.Add(AP4); ListaAereoporti.Add(AP5); // Creo 10 Voli e li metto in una lista di Voli // Utilizzo un generics, in modo da creare una collezione // che contegga oggetti omogenei Volo V1, V2, V3, V4, V5, V6, V7, V8, V9, V10; V1 = new Volo(new DateTime(2020, 11, 11, 0, 0, 0), new DateTime(2020, 11, 11, 1, 0, 0), "V1", AE1, AP1, 7); V2 = new Volo(new DateTime(2020, 11, 12, 0, 30, 0), new DateTime(2020, 11, 12, 1, 30, 0), "V2", AE2, AP3, 40); V3 = new Volo(new DateTime(2020, 11, 13, 0, 45, 0), new DateTime(2020, 11, 13, 2, 0, 0), "V3", AE3, AP4, 25); V4 = new Volo(new DateTime(2020, 11, 14, 1, 0, 0), new DateTime(2020, 11, 14, 2, 0, 0), "V4", AE2, AP5, 15); V5 = new Volo(new DateTime(2020, 11, 15, 2, 0, 0), new DateTime(2020, 11, 15, 3, 30, 0), "V5", AE1, AP5, 8); V6 = new Volo(new DateTime(2020, 11, 16, 4, 0, 0), new DateTime(2020, 11, 16, 5, 0, 0), "V6", AE4, AP4, 6); V7 = new Volo(new DateTime(2020, 11, 17, 4, 30, 0), new DateTime(2020, 11, 17, 6, 0, 0), "V7", AE5, AP2, 4); V8 = new Volo(new DateTime(2020, 11, 18, 6, 0, 0), new DateTime(2020, 11, 18, 7, 30, 0), "V8", AE4, AP1, 7); V9 = new Volo(new DateTime(2020, 11, 19, 10, 0, 0), new DateTime(2020, 11, 19, 12, 50, 0), "V9", AE2, AP3, 12); V10 = new Volo(new DateTime(2020, 11, 20, 12, 0, 0), new DateTime(2020, 11, 20, 13, 50, 0), "V10", AE1, AP4, 1); ListaVoli.Add(V1); ListaVoli.Add(V2); ListaVoli.Add(V3); ListaVoli.Add(V4); ListaVoli.Add(V5); ListaVoli.Add(V6); ListaVoli.Add(V7); ListaVoli.Add(V8); ListaVoli.Add(V9); ListaVoli.Add(V10); // Creo 15 Biglietti e li metto in una lista di Biglietti // Utilizzo un generics, in modo da creare una collezione // che contegga oggetti omogenei Biglietto B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15; B1 = new Biglietto("B1", V1, P1, Enumerazioni.Ruoli.Pilota, 0, true, Enumerazioni.Sezioni.Nessuna, ""); B2 = new Biglietto("B2", V1, P2, Enumerazioni.Ruoli.Passeggero, 100, false, Enumerazioni.Sezioni.Seconda, "A16"); B3 = new Biglietto("B3", V2, P2, Enumerazioni.Ruoli.Steward, 0, true, Enumerazioni.Sezioni.Nessuna, ""); B4 = new Biglietto("B4", V3, P3, Enumerazioni.Ruoli.Passeggero, 50, false, Enumerazioni.Sezioni.Terza, "A17"); B5 = new Biglietto("B5", V3, P4, Enumerazioni.Ruoli.Passeggero, 100, false, Enumerazioni.Sezioni.Seconda, "A19"); B6 = new Biglietto("B6", V3, P5, Enumerazioni.Ruoli.Passeggero, 1000, false, Enumerazioni.Sezioni.Top, "A20"); B7 = new Biglietto("B7", V4, P5, Enumerazioni.Ruoli.Passeggero, 1500, false, Enumerazioni.Sezioni.Luxury, "A21"); B8 = new Biglietto("B8", V5, P3, Enumerazioni.Ruoli.Passeggero, 300, false, Enumerazioni.Sezioni.Prima, "A22"); B9 = new Biglietto("B9", V6, P2, Enumerazioni.Ruoli.Passeggero, 100, false, Enumerazioni.Sezioni.Seconda, "A23"); B10 = new Biglietto("B10", V7, P2, Enumerazioni.Ruoli.Passeggero, 100, false, Enumerazioni.Sezioni.Seconda, "A24"); B11 = new Biglietto("B11", V8, P2, Enumerazioni.Ruoli.Passeggero, 50, false, Enumerazioni.Sezioni.Terza, "A25"); B12 = new Biglietto("B12", V9, P1, Enumerazioni.Ruoli.Passeggero, 300, false, Enumerazioni.Sezioni.Prima, "A26"); B13 = new Biglietto("B13", V10, P2, Enumerazioni.Ruoli.Passeggero, 2000, false, Enumerazioni.Sezioni.Luxury, "A27"); B14 = new Biglietto("B14", V10, P4, Enumerazioni.Ruoli.Passeggero, 800, false, Enumerazioni.Sezioni.Business, "A28"); B15 = new Biglietto("B15", V10, P5, Enumerazioni.Ruoli.Passeggero, 150, false, Enumerazioni.Sezioni.Seconda, "A29"); ListaBiglietti.Add(B1); ListaBiglietti.Add(B2); ListaBiglietti.Add(B3); ListaBiglietti.Add(B4); ListaBiglietti.Add(B5); ListaBiglietti.Add(B6); ListaBiglietti.Add(B7); ListaBiglietti.Add(B8); ListaBiglietti.Add(B9); ListaBiglietti.Add(B10); ListaBiglietti.Add(B11); ListaBiglietti.Add(B12); ListaBiglietti.Add(B13); ListaBiglietti.Add(B14); ListaBiglietti.Add(B15); MessageBox.Show("Caricamento concluso con successo", "Caricamento dati", MessageBoxButton.OK, MessageBoxImage.Information); btnCaricamentoDati.IsEnabled = false; }
List <IEmpresa> ICrearInstanciaPaqueteriaFactory.CrearInstancia(string cClave, List <Configuracion> configuracion) { List <IEmpresa> empresa = null; IMediosTransporte medioTransporte = null; MediosTransporte Mediotransporte = null; Mediotransporte = configuracion[0].mediosTransporte.Where(x => x.Medio.ToUpper() == cClave.ToUpper()).FirstOrDefault(); switch (cClave) { case "MARITIMO": medioTransporte = new Maritimo(new CalculadorVelocidadMaritimo(Mediotransporte.VelocidadPorTemporada, new Estacion(configuracion[0].temporadas)), new CalculadorCostoEnvioMaritimo(Mediotransporte.CostoAdicionalPorTemporada, Mediotransporte.CostoPorKilometro, new Estacion(configuracion[0].temporadas))); empresa = new List <IEmpresa>(); ParametrosDTO parametros = new ParametrosDTO(); empresa.Add(new Fedex(medioTransporte, new CalculadorMargenUtilidadCostoFedex(configuracion[1].Periodos, configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "FEDEX").Select(X => X.MargenUtilidad).FirstOrDefault()), configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "FEDEX").Select(X => X.Medios).FirstOrDefault(), new ParametrosDTO())); empresa.Add(new DHL(medioTransporte, new CalculadorMargenUtilidadCostoDHL(configuracion[1].Periodos, configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "DHL").Select(X => X.MargenUtilidad).FirstOrDefault()), configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "DHL").Select(X => X.Medios).FirstOrDefault(), new ParametrosDTO())); empresa.Add(new Estafeta(medioTransporte, new CalculadorMargenUtilidadCostoEstafeta(configuracion[1].Periodos, configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "ESTAFETA").Select(X => X.MargenUtilidad).FirstOrDefault()), configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "ESTAFETA").Select(X => X.Medios).FirstOrDefault(), new ParametrosDTO())); break; case "TERRESTRE": medioTransporte = new Terrestre(new CalculadorCostoEnvioTerrestre(Mediotransporte.CostoPorKilometro), new CalculadorTiempoTrasladoTerrestre(new Estacion(configuracion[0].temporadas), Mediotransporte.RetrasoPorDiaPorTemporada)); empresa = new List <IEmpresa>(); ParametrosDTO parametrosT = new ParametrosDTO(); empresa.Add(new Fedex(medioTransporte, new CalculadorMargenUtilidadCostoFedex(configuracion[1].Periodos, configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "FEDEX").Select(X => X.MargenUtilidad).FirstOrDefault()), configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "FEDEX").Select(X => X.Medios).FirstOrDefault(), new ParametrosDTO())); empresa.Add(new DHL(medioTransporte, new CalculadorMargenUtilidadCostoDHL(configuracion[1].Periodos, configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "DHL").Select(X => X.MargenUtilidad).FirstOrDefault()), configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "DHL").Select(X => X.Medios).FirstOrDefault(), new ParametrosDTO())); empresa.Add(new Estafeta(medioTransporte, new CalculadorMargenUtilidadCostoEstafeta(configuracion[1].Periodos, configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "ESTAFETA").Select(X => X.MargenUtilidad).FirstOrDefault()), configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "ESTAFETA").Select(X => X.Medios).FirstOrDefault(), new ParametrosDTO())); break; case "AEREO": medioTransporte = new Aereo(new CalculadorEscalas()); empresa = new List <IEmpresa>(); empresa.Add(new Fedex(medioTransporte, new CalculadorMargenUtilidadCostoFedex(configuracion[1].Periodos, configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "FEDEX").Select(X => X.MargenUtilidad).FirstOrDefault()), configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "FEDEX").Select(X => X.Medios).FirstOrDefault(), new ParametrosDTO())); empresa.Add(new DHL(medioTransporte, new CalculadorMargenUtilidadCostoDHL(configuracion[1].Periodos, configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "DHL").Select(X => X.MargenUtilidad).FirstOrDefault()), configuracion[2].paqueterias.Where(c => c.Paqueteria.ToUpper() == "DHL").Select(X => X.Medios).FirstOrDefault(), new ParametrosDTO())); break; } return(empresa); }
static void Main(string[] args) { Paquete paquete = new Paquete { Nombre = "Paquete Vacaciones 2018" }; Aereo aereoIda = new Aereo { Nombre = "Aereo BUE-MDZ", Precio = 2000, Impuestos = 150 }; Aereo aereoVuelta = new Aereo { Nombre = "Aereo MDZ-BUE", Precio = 2000, Impuestos = 150 }; Hotel hotel = new Hotel { Nombre = "Hotel Hilton", Precio = 1000 }; Auto auto = new Auto { Nombre = "Sedan 5 puertas", Precio = 100 }; paquete.add(aereoIda); paquete.add(aereoVuelta); paquete.add(hotel); paquete.add(auto); Console.WriteLine(string.Concat("El Paquete consta de:", paquete.ObtenerNombre())); Console.WriteLine(string.Concat("El Paquete cuesta:", paquete.ObtenerPrecioTotal())); Console.WriteLine("Agregamos asistencia al viajeeo"); AsistenciaViajero asisCard = new AsistenciaViajero { Nombre = "Cobertura Premium", Precio = 500, Impuestos = 20 }; paquete.add(asisCard); Console.WriteLine(string.Concat("El Paquete consta de:", paquete.ObtenerNombre())); Console.WriteLine(string.Concat("El Paquete cuesta:", paquete.ObtenerPrecioTotal())); Console.WriteLine("Para no aburrirse agregamos actividades al hotel"); Actividad torneoPoker = new Actividad { Nombre = "Torneo PokerStar 2018", Precio = 50 }; Actividad pileta = new Actividad { Nombre = "Acceso a pileta del hotel", Precio = 10 }; hotel.add(torneoPoker); hotel.add(pileta); Console.WriteLine(string.Concat("El Hotel consta de:", hotel.ObtenerNombre())); Console.WriteLine(string.Concat("El hotel cuesta:", hotel.ObtenerPrecioTotal())); Console.WriteLine(string.Concat("El Paquete consta de:", paquete.ObtenerNombre())); Console.WriteLine(string.Concat("El Paquete cuesta:", paquete.ObtenerPrecioTotal())); Console.WriteLine("Es muy caro, sacar el torneo de poker"); hotel.remove(torneoPoker); Console.WriteLine(string.Concat("El Hotel consta de:", hotel.ObtenerNombre())); Console.WriteLine(string.Concat("El hotel cuesta:", hotel.ObtenerPrecioTotal())); Console.WriteLine(string.Concat("El Paquete consta de:", paquete.ObtenerNombre())); Console.WriteLine(string.Concat("El Paquete cuesta:", paquete.ObtenerPrecioTotal())); Console.WriteLine("No me dieron las vacaciones :( cancalar todo"); paquete.Cancelar(); Console.ReadKey(); }