public VouchersService(
     IPaymentManagementClient paymentManagementClient,
     IPartnerManagementClient partnerManagementClient,
     ICustomerProfileClient customerProfileClient,
     IVouchersRepository vouchersRepository,
     ICampaignsRepository campaignsRepository,
     IPaymentRequestsRepository paymentRequestsRepository,
     ILogFactory logFactory,
     IRedisLocksService redisLocksService,
     IRabbitPublisher <SmartVoucherSoldEvent> voucherSoldPublisher,
     IRabbitPublisher <SmartVoucherUsedEvent> voucherUsedPublisher,
     IRabbitPublisher <SmartVoucherTransferredEvent> voucherTransferredPublisher,
     TimeSpan lockTimeOut)
 {
     _paymentManagementClient   = paymentManagementClient;
     _partnerManagementClient   = partnerManagementClient;
     _customerProfileClient     = customerProfileClient;
     _vouchersRepository        = vouchersRepository;
     _campaignsRepository       = campaignsRepository;
     _paymentRequestsRepository = paymentRequestsRepository;
     _redisLocksService         = redisLocksService;
     _voucherSoldPublisher      = voucherSoldPublisher;
     _log                         = logFactory.CreateLog(this);
     _lockTimeOut                 = lockTimeOut;
     _voucherUsedPublisher        = voucherUsedPublisher;
     _voucherTransferredPublisher = voucherTransferredPublisher;
 }
 public PaymentProvidersService(
     IPaymentRequestsRepository paymentRequestsRepository,
     IRabbitPublisher <PaymentCompletedEvent> rabbitPublisher,
     IConnectionMultiplexer connectionMultiplexer,
     IEnumerable <(string name, string url)> integrationPlugins,