public CardService(ICardRepository cardRepository, IWithdrawalFeeCalculator withdrawalFeeCalculator, IFeeRepository feeRepository, IFeeFactory feeFactory) { _cardRepository = cardRepository; _withdrawalFeeCalculator = withdrawalFeeCalculator; _feeRepository = feeRepository; _feeFactory = feeFactory; }
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); }