Esempio n. 1
0
        public void Transfer(IWithdrawalAndDepositAccount from, IDepositAccount to, decimal amount)
        {
            if (from.Amount < amount)
            {
                throw new InvalidOperationException();
            }

            from.Withdraw(amount);
            to.Deposit(amount);
        }
Esempio n. 2
0
        public void WithdrawMoneyFrom(IWithdrawalAndDepositAccount account, decimal amount, IWithdrawalFeeCalculator withdrawalFeeCalculator)
        {
            var totalAmount = withdrawalFeeCalculator.CalculateAmountToWithdraw(amount);

            if (totalAmount > account.Amount)
            {
                Console.WriteLine("Insufficient funds.");
                return;
            }
            account.Withdraw(totalAmount);
            Console.WriteLine("{0}: {1}", account.GetType().Name, account.Amount);
        }