public ICalculaRetrasoPorDia CrearInstancia(EnumEstacionesAnio estacionesAnio) { ICalculaRetrasoPorDia calculaRetrasoPorDia = null; IObtenedorTiempoDescansoPorDia obtenedorTiempoDescansoPorDia; switch (estacionesAnio) { case EnumEstacionesAnio.Invierno: obtenedorTiempoDescansoPorDia = _factoryGenericContainer.GetInstance <IObtenedorTiempoDescansoPorDia>("ObtenedorTiempoDescansoInvierno"); calculaRetrasoPorDia = new CalculaRetrasoPorDia(obtenedorTiempoDescansoPorDia); break; case EnumEstacionesAnio.Otonio: obtenedorTiempoDescansoPorDia = _factoryGenericContainer.GetInstance <IObtenedorTiempoDescansoPorDia>("ObtenedorTiempoDescansoOtonio"); calculaRetrasoPorDia = new CalculaRetrasoPorDia(obtenedorTiempoDescansoPorDia); break; case EnumEstacionesAnio.Verano: obtenedorTiempoDescansoPorDia = _factoryGenericContainer.GetInstance <IObtenedorTiempoDescansoPorDia>("ObtenedorTiempoDescansoVerano"); calculaRetrasoPorDia = new CalculaRetrasoPorDia(obtenedorTiempoDescansoPorDia); break; case EnumEstacionesAnio.Primavera: obtenedorTiempoDescansoPorDia = _factoryGenericContainer.GetInstance <IObtenedorTiempoDescansoPorDia>("ObtenedorTiempoDescansoPrimavera"); calculaRetrasoPorDia = new CalculaRetrasoPorDia(obtenedorTiempoDescansoPorDia); break; } return(calculaRetrasoPorDia); }
public CalculaFechaEntregaTerrestre(IObtenedorTiempoReparto obtenedorTiempoReparto, ICalcularTiempoEntrega calcularTiempoEntrega, ICalculaRetrasoPorDia calculaRetrasoPorDia) { this.obtenedorTiempoReparto = obtenedorTiempoReparto ?? throw new ArgumentNullException(nameof(obtenedorTiempoReparto)); this.calcularTiempoEntrega = calcularTiempoEntrega ?? throw new ArgumentNullException(nameof(calcularTiempoEntrega)); this._calculaRetrasoPorDia = calculaRetrasoPorDia ?? throw new ArgumentNullException(nameof(calculaRetrasoPorDia)); }