/// <summary> /// Performs a funds transfer for the given ledger entry line. /// </summary> public void TransferFunds(LedgerBook ledgerBook, TransferFundsCommand transferDetails, LedgerEntryLine ledgerEntryLine) { if (transferDetails == null) { throw new ArgumentNullException(nameof(transferDetails)); } if (ledgerEntryLine == null) { throw new ArgumentNullException(nameof(ledgerEntryLine)); } if (!transferDetails.IsValid()) { throw new InvalidOperationException("Code Error: The transfer command is in an invalid state, this should be resolved in the UI."); } PerformBankTransfer(ledgerBook, transferDetails, ledgerEntryLine); }