private ICostoEnvio ObtenerInstanciaCostoEnvioAereo(string _cIdentificadorEmpresa) { IEscalaPorKM escalaPorKM = new EscalaPorKMAereo(); ICargoExtraEnvio cargoExtraEnvio = new CargoExtraEnvioAereo(escalaPorKM); IMargenUtilidad margenUtilidad = container.GetInstance <IMargenUtilidad>(_cIdentificadorEmpresa); ICostoEnvio costoEnvio = new CostoEnvioAereo(cargoExtraEnvio, margenUtilidad); return(costoEnvio); }
//private readonly IContainer container; //public TiempoTrasladoFactory(IContainer _container) //{ // container = _container ?? throw new ArgumentNullException(nameof(_container)); //} public ITiempoTraslado CrearInstancia(EnumMedioTransporte _enumMedioTransporte) { ITiempoTraslado tiempoTraslado = null; switch (_enumMedioTransporte) { case EnumMedioTransporte.Maritimo: break; case EnumMedioTransporte.Terrestre: break; case EnumMedioTransporte.Aereo: IEscalaPorKM escalaPorKM = new EscalaPorKMAereo(); ITiempoExtraTraslado tiempoExtraTraslado = new TiempoExtraTrasladoAereo(escalaPorKM); IVelocidadEntregaTransporte velocidadEntregaTransporte = new VelocidadEntregaTransporte(); tiempoTraslado = new TiempoTrasladoAereo(tiempoExtraTraslado, velocidadEntregaTransporte); break; } return(tiempoTraslado); }