Пример #1
0
            public IObservable <ICommit> ReadAllFromCheckpoint(GetEventStoreCheckpoint checkpoint)
            {
                const int batchSize = 512;

                var start = ((int?)checkpoint ?? 0);

                const string stream = "$et-" + GetEventStoreCommitAttempt.EventType;

                return(Observable.Create <ICommit>(async observer =>
                {
                    bool isEndOfStream;
                    do
                    {
                        StreamEventsSlice slice =
                            await _connection.ReadStreamEventsForwardAsync(stream, start, batchSize, true);

                        var commits = (from resolved in slice.Events
                                       where false == IsSystemEvent(resolved)
                                       let dto = DeserializeEvent(resolved)
                                                 let commit = BuildCommit(dto, resolved)
                                                              select commit).ToList();

                        commits.ForEach(observer.OnNext);

                        start += batchSize;
                        isEndOfStream = slice.IsEndOfStream;
                    } while (false == isEndOfStream);

                    observer.OnCompleted();
                }));
            }
Пример #2
0
        public IObservable <ICommit> GetFrom(string checkpointToken = null)
        {
            ThrowWhenDisposed();

            Logger.Debug(Messages.GettingAllCommitsFromCheckpoint, checkpointToken);

            GetEventStoreCheckpoint checkpoint = GetEventStoreCheckpoint.Parse(checkpointToken);

            var reader = new EventReader(_connection, _serializer);

            return(reader.ReadAllFromCheckpoint(checkpoint));
        }
Пример #3
0
 public ICheckpoint GetCheckpoint(string checkpointToken = null)
 {
     return(GetEventStoreCheckpoint.Parse(checkpointToken));
 }