Exemple #1
0
 /// <summary>
 /// 默认构造函数
 /// </summary>
 public AggregateRoot()
 {
     _sourcableEvents   = new Queue <SourcableEvent>();
     _notifyEvents      = new Queue <object>();
     _originalVersion   = DefaultVersion;
     _logger            = ObjectContainer.Resolve <ILoggerFactory>().Create("EventSourcing.AggregateRoot");
     _callbackProvider  = ObjectContainer.Resolve <IAggregateRootInternalHandlerProvider>();
     _eventTypeProvider = ObjectContainer.Resolve <IEventTypeProvider>();
 }
 /// <summary>Initialize from the given snapshot.
 /// </summary>
 internal void InitializeFromSnapshot(Snapshot snapshot)
 {
     UniqueId           = snapshot.AggregateRootId;
     Version            = snapshot.StreamVersion;
     _uncommittedEvents = new Queue <IEvent>();
     if (_eventHandlerProvider == null)
     {
         _eventHandlerProvider = ObjectContainer.Resolve <IAggregateRootInternalHandlerProvider>();
     }
 }
Exemple #3
0
        private void HandleEvent(IDomainEvent domainEvent)
        {
            if (_eventHandlerProvider == null)
            {
                _eventHandlerProvider = ObjectContainer.Resolve <IAggregateRootInternalHandlerProvider>();
            }
            var handler = _eventHandlerProvider.GetInternalEventHandler(GetType(), domainEvent.GetType());

            if (handler == null)
            {
                throw new Exception(string.Format("Could not find event handler for [{0}] of [{1}]", domainEvent.GetType().FullName, GetType().FullName));
            }
            handler(this, domainEvent);
        }
Exemple #4
0
        private void HandleEvent(IDomainEvent domainEvent)
        {
            if (_eventHandlerProvider == null)
            {
                _eventHandlerProvider = ObjectContainer.Resolve <IAggregateRootInternalHandlerProvider>();
            }
            var handler = _eventHandlerProvider.GetInternalEventHandler(GetType(), domainEvent.GetType());

            if (handler == null)
            {
                throw new Exception(string.Format("Could not find event handler for [{0}] of [{1}]", domainEvent.GetType().FullName, GetType().FullName));
            }
            if (Equals(this._id, default(TAggregateRootId)) && domainEvent.Version == 1)
            {
                this._id = TypeUtils.ConvertType <TAggregateRootId>(domainEvent.AggregateRootStringId);
            }
            handler(this, domainEvent);
        }
 public DefaultEventSourcingService(IAggregateRootInternalHandlerProvider eventHandlerProvider)
 {
     _eventHandlerProvider = eventHandlerProvider;
 }