public RecordLevyTransactionBatchHandler(IPaymentLogger logger,
                                          ILevyTransactionBatchStorageService levyTransactionBatchStorageService,
                                          IJobMessageClientFactory monitoringClientFactory)
 {
     this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
     this.levyTransactionBatchStorageService = levyTransactionBatchStorageService ??
                                               throw new ArgumentNullException(
                                                         nameof(levyTransactionBatchStorageService));
     this.monitoringClientFactory = monitoringClientFactory ?? throw new ArgumentNullException(nameof(monitoringClientFactory));
 }
 public TransferFundingSourceEventGenerationService(
     IPaymentLogger paymentLogger,
     IMapper mapper,
     IDataCache <bool> monthEndCache,
     IDataCache <LevyAccountModel> levyAccountCache,
     ILevyBalanceService levyBalanceService,
     IFundingSourcePaymentEventBuilder fundingSourcePaymentEventBuilder,
     ILevyTransactionBatchStorageService levyTransactionBatchStorageService
     )
 {
     this.paymentLogger      = paymentLogger ?? throw new ArgumentNullException(nameof(paymentLogger));
     this.mapper             = mapper ?? throw new ArgumentNullException(nameof(mapper));
     this.monthEndCache      = monthEndCache ?? throw new ArgumentNullException(nameof(monthEndCache));
     this.levyAccountCache   = levyAccountCache ?? throw new ArgumentNullException(nameof(levyAccountCache));
     this.levyBalanceService = levyBalanceService ?? throw new ArgumentNullException(nameof(levyBalanceService));
     this.fundingSourcePaymentEventBuilder   = fundingSourcePaymentEventBuilder ?? throw new ArgumentNullException(nameof(fundingSourcePaymentEventBuilder));
     this.levyTransactionBatchStorageService = levyTransactionBatchStorageService ?? throw new ArgumentNullException(nameof(levyTransactionBatchStorageService));
 }