Exemplo n.º 1
0
        private void OnTransactionCompleted(object sender, TransactionEventArgs e)
        {
            var transaction = e.Transaction;
            var transId     = transaction.TransactionInformation.LocalIdentifier;

            try
            {
                logger?.LogDebug("TransId:{0} OnTransactionCompleted Status:{1}", transId, transaction.TransactionInformation.Status);
                var items = GetAll(transId, true);
                if (transaction.TransactionInformation.Status == TransactionStatus.Committed)
                {
                    TransactionCommitted?.Invoke(this, items);
                }
                else
                {
                    TransactionAborted?.Invoke(this, items);
                }
            }
            finally
            {
                transaction.TransactionCompleted -= OnTransactionCompleted;
                subscribedTransaction             = null;
                transactionItems.TryRemove(transId, out _);
            }
        }
Exemplo n.º 2
0
 private void Apply(TransactionCommitted transactionCommitted)
 {
     Balance -= transactionCommitted.Amount;
     OutstandingTransactions.Remove(transactionCommitted.TransactionId);
 }