public void AddEvent(AccountDomainEvent domainEvent) { domainEvent.StreamId = Id; ApplyEvent(domainEvent); UncommittedEvents.Add(domainEvent); StreamVersion++; }
public void AddEvent(AccountDomainEvent domainEvent) { domainEvent.AggregateRootId = Id; ApplyEvent(domainEvent); UncommittedEvents.Add(domainEvent); Version++; }
protected override void ApplyEvent(AccountDomainEvent domainEvent) { Id = domainEvent.AggregateRootId; switch (domainEvent) { case DebitAccountCreatedEvent createdEvent: OnDebitCardAccountCreated(createdEvent); break; default: ApplyAccountEvent(domainEvent); break; } }
protected void ApplyAccountEvent(AccountDomainEvent domainEvent) { Id = domainEvent.AggregateRootId; switch (domainEvent) { case AccountDebitedEvent accountDebitedEvent: OnAccountDebited(accountDebitedEvent); break; case AccountCreditedEvent accountCreditedEvent: OnAccountCredited(accountCreditedEvent); break; case IssuerInformationSetEvent issuerInformationSetEvent: OnIssuerInformationSetEvent(issuerInformationSetEvent); break; } }
protected abstract void ApplyEvent(AccountDomainEvent domainEvent);