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; }
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); }