public void AddEvent(CreditCardDomainEvent domainEvent) { ApplyEvent(domainEvent); UncommittedEvents.Add(domainEvent); StreamVersion++; }
private void ApplyEvent(CreditCardDomainEvent domainEvent) { switch (domainEvent) { case CreditCardCreatedEvent creditCardCreatedEvent: break; case CreditCardDetailsSetEvent cardDetailsSetEvent: State.NameOnCard = cardDetailsSetEvent.NameOnCard; break; case CreditCardConnectedToAccountEvent cardConnectedToAccountEvent: State.AccountId = cardConnectedToAccountEvent.AccountId; break; default: throw new NotImplementedException(); } }