コード例 #1
0
        public Transaction Transfer(Account accountToDebit, Account accountToCredit, double valueToTransfer)
        {
            ValidateTransfer(accountToDebit, accountToCredit, valueToTransfer);

            using (var transScope = new TransactionScope())
            {
                accountToDebit.Debit(valueToTransfer);
                accountToCredit.Credit(valueToTransfer);

                var transaction = new Transaction(accountToDebit, accountToCredit, valueToTransfer);

                AccountRepository.Save(accountToDebit);
                AccountRepository.Save(accountToCredit);
                BankStatementRepository.RegisterTransaction(transaction);
                transScope.Complete();

                return(transaction);
            }
        }
コード例 #2
0
ファイル: AccountService.cs プロジェクト: nibodev/DojoTDD
        public Transaction Transfer(Account accountToDebit, Account accountToCredit, double valueToTransfer)
        {
            ValidateTransfer(accountToDebit, accountToCredit, valueToTransfer);

            using (var transScope = new TransactionScope())
            {
                accountToDebit.Debit(valueToTransfer);
                accountToCredit.Credit(valueToTransfer);

                var transaction = new Transaction(accountToDebit, accountToCredit, valueToTransfer);

                AccountRepository.Save(accountToDebit);
                AccountRepository.Save(accountToCredit);
                BankStatementRepository.RegisterTransaction(transaction);
                transScope.Complete();

                return transaction;
            }
        }