public void AddEvent(CardDomainEvent domainEvent)
        {
            ApplyEvent(domainEvent);

            UncommittedEvents.Add(domainEvent);

            Version++;
        }
Example #2
0
        protected override void ApplyEvent(CardDomainEvent domainEvent)
        {
            switch (domainEvent)
            {
            case DebitCardCreatedEvent createdEvent:
                OnCardCreated(createdEvent);
                break;

            default:
                ApplyCardEvent(domainEvent);
                break;
            }
        }
        protected void ApplyCardEvent(CardDomainEvent domainEvent)
        {
            switch (domainEvent)
            {
            case CardDetailsSetEvent cardDetailsSetEvent:
                OnCardDetailsSet(cardDetailsSetEvent);
                break;

            case CardConnectedToAccountEvent cardConnectedToAccountEvent:
                OnCardConnectedToAccountEvent(cardConnectedToAccountEvent);
                break;

            default:
                throw new NotImplementedException();
            }
        }
 protected abstract void ApplyEvent(CardDomainEvent domainEvent);