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));
 }