示例#1
0
 public override AggregateRoot GetById(Type aggregateRootType, Guid eventSourceId, long? lastKnownRevision)
 {
     int maxRevision = lastKnownRevision != null ? (int) lastKnownRevision : int.MaxValue;
     var snapshot = _eventStore.GetSnapshot(eventSourceId, maxRevision);
     IEventStream stream;
     Sourcing.Snapshotting.Snapshot ncqrsSnapshot = null;
     if (snapshot != null)
     {
         ncqrsSnapshot = new Sourcing.Snapshotting.Snapshot(eventSourceId, snapshot.StreamRevision, snapshot.Payload);
         stream = _eventStore.OpenStream(snapshot, maxRevision);
     }
     else
     {
         stream = _eventStore.OpenStream(eventSourceId, 0, maxRevision);
     }
     _trackedStreams[eventSourceId] = stream;
     var committedEventStream = GetCommittedEventStream(eventSourceId, stream);
     var result = _domainRepository.Load(aggregateRootType, ncqrsSnapshot, committedEventStream);
     return result;
 }
示例#2
0
        public override AggregateRoot GetById(Type aggregateRootType, Guid eventSourceId, long?lastKnownRevision)
        {
            int          maxRevision = lastKnownRevision != null ? (int)lastKnownRevision : int.MaxValue;
            var          snapshot    = _eventStore.GetSnapshot(eventSourceId, maxRevision);
            IEventStream stream;

            Sourcing.Snapshotting.Snapshot ncqrsSnapshot = null;
            if (snapshot != null)
            {
                ncqrsSnapshot = new Sourcing.Snapshotting.Snapshot(eventSourceId, snapshot.StreamRevision, snapshot.Payload);
                stream        = _eventStore.OpenStream(snapshot, maxRevision);
            }
            else
            {
                stream = _eventStore.OpenStream(eventSourceId, 0, maxRevision);
            }
            _trackedStreams[eventSourceId] = stream;
            var committedEventStream = GetCommittedEventStream(eventSourceId, stream);
            var result = _domainRepository.Load(aggregateRootType, ncqrsSnapshot, committedEventStream);

            return(result);
        }