public IEnumerable <DocumentItem> GetRevisionDocuments(List <string> collectionsToExport, INewDocumentActions actions) { Debug.Assert(_context != null); var revisionsStorage = _database.DocumentsStorage.RevisionsStorage; var enumerator = new PulsedTransactionEnumerator <Document, DocumentsIterationState>(_context, state => { if (state.StartEtagByCollection.Count != 0) { return(GetRevisionsFromCollections(_context, state)); } return(revisionsStorage.GetRevisionsFrom(_context, state.StartEtag, int.MaxValue)); }, new DocumentsIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) // initial state { StartEtag = _startDocumentEtag, StartEtagByCollection = collectionsToExport.ToDictionary(x => x, x => _startDocumentEtag) }); while (enumerator.MoveNext()) { yield return(new DocumentItem { Document = enumerator.Current }); } }
public IEnumerable <TimeSeriesItem> GetTimeSeries(List <string> collectionsToExport) { Debug.Assert(_context != null); var initialState = new TimeSeriesIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) { StartEtag = _startDocumentEtag, StartEtagByCollection = collectionsToExport.ToDictionary(x => x, x => _startDocumentEtag) }; var enumerator = new PulsedTransactionEnumerator <TimeSeriesItem, TimeSeriesIterationState>(_context, state => { if (state.StartEtagByCollection.Count != 0) { return(GetTimeSeriesFromCollections(_context, state)); } return(GetAllTimeSeriesItems(_context, state.StartEtag)); }, initialState); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }
public IEnumerable <CounterGroupDetail> GetCounterValues(List <string> collectionsToExport, ICounterActions actions) { Debug.Assert(_context != null); var enumerator = new PulsedTransactionEnumerator <CounterGroupDetail, CountersIterationState>(_context, state => { if (state.StartEtagByCollection.Count != 0) { return(GetCounterValuesFromCollections(_context, state)); } return(_database.DocumentsStorage.CountersStorage.GetCountersFrom(_context, state.StartEtag, 0, long.MaxValue)); }, new CountersIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) // initial state { StartEtag = _startDocumentEtag, StartEtagByCollection = collectionsToExport.ToDictionary(x => x, x => _startDocumentEtag) }); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously public async IAsyncEnumerable <TimeSeriesItem> GetTimeSeriesAsync(List <string> collectionsToExport) #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously { Debug.Assert(_context != null); var initialState = new TimeSeriesIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) { StartEtag = _startDocumentEtag, StartEtagByCollection = collectionsToExport.ToDictionary(x => x, x => _startDocumentEtag) }; var enumerator = new PulsedTransactionEnumerator <TimeSeriesItem, TimeSeriesIterationState>(_context, state => { if (state.StartEtagByCollection.Count != 0) { return(GetTimeSeriesFromCollections(_context, state)); } return(GetAllTimeSeriesItems(_context, state.StartEtag)); }, initialState); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously public async IAsyncEnumerable <CounterGroupDetail> GetCounterValuesAsync(List <string> collectionsToExport, ICounterActions actions) #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously { Debug.Assert(_context != null); var enumerator = new PulsedTransactionEnumerator <CounterGroupDetail, CountersIterationState>(_context, state => { if (state.StartEtagByCollection.Count != 0) { return(GetCounterValuesFromCollections(_context, state)); } return(_database.DocumentsStorage.CountersStorage.GetCountersFrom(_context, state.StartEtag, 0, long.MaxValue)); }, new CountersIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) // initial state { StartEtag = _startDocumentEtag, StartEtagByCollection = collectionsToExport.ToDictionary(x => x, x => _startDocumentEtag) }); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously public async IAsyncEnumerable <DocumentConflict> GetConflictsAsync(List <string> collectionsToExport, INewDocumentActions actions) #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously { Debug.Assert(_context != null); var enumerator = new PulsedTransactionEnumerator <DocumentConflict, DocumentConflictsIterationState>(_context, state => { if (collectionsToExport.Count != 0) { return(GetConflictsFromCollections(_context, collectionsToExport.ToHashSet(), state)); } return(_database.DocumentsStorage.ConflictsStorage.GetConflictsFrom(_context, state.StartEtag)); }, new DocumentConflictsIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) { StartEtag = _startDocumentEtag, }); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }
public IEnumerable <DocumentConflict> GetConflicts(List <string> collectionsToExport, INewDocumentActions actions) { Debug.Assert(_context != null); var enumerator = new PulsedTransactionEnumerator <DocumentConflict, DocumentConflictsIterationState>(_context, state => { if (collectionsToExport.Count != 0) { return(GetConflictsFromCollections(_context, collectionsToExport.ToHashSet(), state)); } return(_database.DocumentsStorage.ConflictsStorage.GetConflictsFrom(_context, state.StartEtag)); }, new DocumentConflictsIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) { StartEtag = _startDocumentEtag, }); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }
public IEnumerable <Tombstone> GetTombstones(List <string> collectionsToExport, INewDocumentActions actions) { Debug.Assert(_context != null); var enumerator = new PulsedTransactionEnumerator <Tombstone, TombstonesIterationState>(_context, state => { if (state.StartEtagByCollection.Count != 0) { return(GetTombstonesFromCollections(_context, state)); } return(_database.DocumentsStorage.GetTombstonesFrom(_context, state.StartEtag, 0, int.MaxValue)); }, new TombstonesIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) { StartEtag = _startDocumentEtag, StartEtagByCollection = collectionsToExport.ToDictionary(x => x, x => _startDocumentEtag) }); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }