Esempio n. 1
0
        protected void Raise(AbstractDomainEvent <TIdentity> domainEvent)
        {
            Apply(domainEvent);

            _outbox.Add(domainEvent);

            Version++;
        }
Esempio n. 2
0
        public void Handle <TId>(AbstractDomainEvent <TId> domainEvent, Action <AbstractDomainEvent <TId> > action)
            where TId : AbstractIdentity
        {
            if (_inbox.Contains(domainEvent.Id))
            {
                return;
            }

            action(domainEvent);

            _inbox.Add(domainEvent.Id);
        }
Esempio n. 3
0
        public override void Apply(AbstractDomainEvent <AccountId> domainEvent)
        {
            switch (domainEvent)
            {
            case AccountRegistered x:
                AccountName = AccountName.Create(x.FirstName, x.LastName);
                break;

            default:
                throw new Exception($"No apply function registered for type {domainEvent.GetType().Name}");
            }
        }
Esempio n. 4
0
 public int GetHashCode(AbstractDomainEvent <TIdentity> obj) => obj.AggregateId.GetHashCode();
Esempio n. 5
0
 public bool Equals(AbstractDomainEvent <TIdentity> x, AbstractDomainEvent <TIdentity> y) =>
 x?.AggregateId == y?.AggregateId;
Esempio n. 6
0
 public abstract void Apply(AbstractDomainEvent <TIdentity> domainEvent);