Esempio n. 1
0
        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>();
        }
Esempio n. 2
0
 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.");
     }
 }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
 public ReplicatorService()
 {
     _arbitrationServiceProvider = ServiceLocator.GetInstance <IArbitrationServiceProvider>();
     _bankCache = ServiceLocator.GetInstance <ICache>();
 }