public TransferMoneyContext(TransferMoneySource source, TransferMoneySink sink, double amount) { Source = source; Sink = sink; Amount = amount; }
public static void TransferTo(this TransferMoneySource self, TransferMoneySink recipient, double amount) { if (self.Balance < amount) { throw new ApplicationException("insufficient funds"); } self.Withdraw(amount); self.Log("Withdrawing " + amount); recipient.Deposit(amount); recipient.Log("Depositing " + amount); }
public MoneyTransfer From(TransferMoneySource source) { this.source = source; return this; }
public TransferMoneyContext(TransferMoneySource source, TransferMoneySink sink, decimal amount) { Source = source; Sink = sink; Amount = amount; }