public BankMasterCardService() { var caCertificate = CertificateManager.Instance.GetCACertificate(); if (caCertificate == null) { throw new Exception("Certificate manager returned null for CA certificate."); } _bankCache = ServiceLocator.GetInstance <ICache>(); _arbitrationServiceProvider = ServiceLocator.GetInstance <IArbitrationServiceProvider>(); _replicatorProxy = ProxyPool.GetProxy <IReplicator>(); }
public ReplicatorProxy() { _arbitrationServiceProvider = ServiceLocator.GetInstance <IArbitrationServiceProvider>(); if (BankAppConfig.InstanceNo > 1) { _replicationTokenSource = new CancellationTokenSource(); _replicationThread = new Thread(ReplicationWorker); _replicationThread.Start(_replicationTokenSource.Token); } else { Console.WriteLine("Only one instance of bank service is specified replicator won't start."); } }
public void Dispose() { if (!_disposed && BankAppConfig.InstanceNo > 1) { _disposed = true; _replicationTokenSource.Cancel(); _threadFinishedEvent.WaitOne(10000); _replicationTokenSource.Dispose(); _replicationTokenSource = null; _replicationThread = null; _replicatorProxyFactory = null; while (_replicationQueue.TryDequeue(out var item)) { ; } _replicationQueue = null; } _arbitrationServiceProvider = null; }
public ReplicatorService() { _arbitrationServiceProvider = ServiceLocator.GetInstance <IArbitrationServiceProvider>(); _bankCache = ServiceLocator.GetInstance <ICache>(); }