private void DoAction(AccountActionDelegate action, DateTime date, SimulationAccount account, string name, decimal amount) { var b1 = account.Balance; action.Invoke(account, this, date, amount); var b2 = account.Balance; var sign = b2.CompareTo(b1); AddResultItem(account, date, amount * sign, name); }
public void Withdraw(DateTime date, SimulationAccount account, string name, decimal amount) { DoAction(WithdrawDelegate, date, account, name, amount); }
public void Deposit(DateTime date, SimulationAccount account, string name, decimal amount) { DoAction(DepositDelegate, date, account, name, amount); }
private static void WithdrawDelegate(SimulationAccount account, SimulationState state, DateTime date, decimal amount) => account.Withdraw(state, date, amount);
private static void DepositDelegate(SimulationAccount account, SimulationState state, DateTime date, decimal amount) => account.Deposit(state, date, amount);