Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 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()))));
 }