Example #1
0
        /// <summary>
        ///     Replicate client account cache data.
        /// </summary>
        /// <param name="replicationData"> Replication data. </param>
        /// <param name="principal"> The bank service user replicating data. </param>
        private void ReplicateCacheData(IReplicationItem replicationData, IPrincipal principal)
        {
            Console.WriteLine($"Replicating cache data from {principal.Identity.Name}");
            var client = BankCache.GetClientFromCache(_bankCache, replicationData.Client.Name);

            client.Pin     = replicationData.Client.Pin;
            client.Account = new Account(replicationData.Client.Account.Balance);
            _bankCache.StoreData();
        }
Example #2
0
        public void ReplicateData(IReplicationItem replicationData)
        {
            var principal = Thread.CurrentPrincipal;

            if ((replicationData.Type & ReplicationType.UserData) != 0)
            {
                ReplicateCacheData(replicationData, principal);
            }

            if ((replicationData.Type & ReplicationType.CertificateData) != 0)
            {
                if ((replicationData.Type & ReplicationType.RevokeCertificate) == 0)
                {
                    RevokeOldAndPlaceNewCertificate(replicationData.Certificate);
                }
                else
                {
                    RevokeOldCertificate(replicationData.Certificate);
                }
            }
        }