public ICalculaVariacionVelocidad CrearInstancia(EnumEstacionesAnio estacionesAnio) { ICalculaVariacionVelocidad variacionVelocidad = null; IObtenedorVariacionVelocidad obtenedorVariacionVelocidad; switch (estacionesAnio) { case EnumEstacionesAnio.Invierno: obtenedorVariacionVelocidad = _factoryGenericContainer.GetInstance <IObtenedorVariacionVelocidad>("ObtenedorVelocidadInvierno"); variacionVelocidad = new CalculaVariacionVelocidad(obtenedorVariacionVelocidad); break; case EnumEstacionesAnio.Otonio: obtenedorVariacionVelocidad = _factoryGenericContainer.GetInstance <IObtenedorVariacionVelocidad>("ObtenedorVelocidadOtonio"); variacionVelocidad = new CalculaVariacionVelocidad(obtenedorVariacionVelocidad); break; case EnumEstacionesAnio.Verano: obtenedorVariacionVelocidad = _factoryGenericContainer.GetInstance <IObtenedorVariacionVelocidad>("ObtenedorVelocidadVerano"); variacionVelocidad = new CalculaVariacionVelocidad(obtenedorVariacionVelocidad); break; } return(variacionVelocidad); }
public CalculaFechaEntregaMaritimo(IObtenedorTiempoReparto obtenedorTiempoReparto, ICalcularTiempoEntrega calcularTiempoEntrega, ICalculaVariacionVelocidad calculaVariacionVelocidad) { this.obtenedorTiempoReparto = obtenedorTiempoReparto ?? throw new ArgumentNullException(nameof(obtenedorTiempoReparto)); this.calcularTiempoEntrega = calcularTiempoEntrega ?? throw new ArgumentNullException(nameof(calcularTiempoEntrega)); this.calculaVariacionVelocidad = calculaVariacionVelocidad ?? throw new ArgumentNullException(nameof(calculaVariacionVelocidad)); }