public RetryErrorFilter(IBusEngine engine, RetryErrorFilterOptions options, ILogger <RetryErrorFilter> logger) { _engine = engine ?? throw new ArgumentNullException(nameof(engine)); _options = options ?? throw new ArgumentNullException(nameof(options)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); if (_options.MaxRetries < 0) { throw new ArgumentOutOfRangeException(nameof(_options.MaxRetries), "maxRetries must be greater or equal than 0"); } }
public IErrorFilter CreateErrorFilter(IConfigurationSection settings) { var engine = _serviceProvider.GetRequiredService <IBusEngine>(); var logger = _serviceProvider.GetRequiredService <ILogger <RetryErrorFilter> >(); var options = new RetryErrorFilterOptions(); settings.Bind(options); return(new RetryErrorFilter(engine, options, logger)); }