private AccountState ApplyEvent(AccountCurrentBalanceUpdated occurred) { var adjustmentsObligation = new MaintenanceFee("AccountAdjustments", 0, ObligationStatus.Boarding); if (Obligations.ContainsKey("AccountAdjustments")) { adjustmentsObligation = Obligations["AccountAdjustments"]; } var trans = new FinancialTransaction(new Adjustment(occurred.CurrentBalance), occurred.CurrentBalance); adjustmentsObligation.PostTransaction(trans); return(new AccountState( AccountNumber, decimal.Parse(occurred.CurrentBalance.ToString()), AccountStatus, Obligations.Add(adjustmentsObligation.ObligationNumber, adjustmentsObligation), SimulatedFields, AuditLog.Add(new StateLog("AccountCurrentBalanceUpdated", "Boarding Adjustment", occurred.UniqueGuid(), occurred.OccurredOn())), OpeningBalance, Inventroy, UserName, LastPaymentAmount, LastPaymentDate)); }
public AccountState Event(AccountCurrentBalanceUpdated occurred) { return(new AccountState(this.AccountNumber, occurred.CurrentBalance, this.AccountStatus, this.Obligations, SimulatedFields, AuditLog.Add(new StateLog("AccountCurrentBalanceUpdated", occurred.UniqueGuid(), occurred.OccurredOn())))); }