public BatchProcessingService(IConfigurationHelper configurationHelper, IBatchScopeFactory batchScopeFactory, IPaymentLogger logger)
        {
            this.batchScopeFactory = batchScopeFactory ?? throw new ArgumentNullException(nameof(batchScopeFactory));
            this.logger            = logger ?? throw new ArgumentNullException(nameof(logger));
            var intervalInSeconds = int.Parse(configurationHelper.GetSetting("BatchIntervalInSeconds"));

            batchInterval = TimeSpan.FromSeconds(intervalInSeconds);
            batchSize     = int.Parse(configurationHelper.GetSetting("BatchSize"));
            policy        = Policy.Handle <Exception>()
                            .CircuitBreakerAsync(5, TimeSpan.FromSeconds(int.Parse(configurationHelper.GetSetting("BatchFailureTimeoutInSeconds"))));
        }
 public PaymentsEventModelBatchService(IConfigurationHelper configurationHelper, IBatchScopeFactory batchScopeFactory, IPaymentLogger logger)
     : base(configurationHelper, batchScopeFactory, logger)
 {
 }