Example #1
0
 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);