Example #1
0
 /// <inheritdoc/>
 public IAsyncEnumerable <StreamEvent> FetchRange(
     StreamPositionRange range,
     CancellationToken cancellationToken)
 {
     try
     {
         return(_collection.Find(
                    _filter.Gte(_sequenceNumberExpression, range.From.Value)
                    & _filter.Lt(_sequenceNumberExpression, range.From.Value + range.Length))
                .Project(_eventToStreamEvent)
                .ToAsyncEnumerable(cancellationToken));
     }
     catch (MongoWaitQueueFullException ex)
     {
         throw new EventStoreUnavailable("Mongo wait queue is full", ex);
     }
 }
Example #2
0
 /// <inheritdoc/>
 public async Task <IEnumerable <Artifact> > FetchInRange(
     StreamPositionRange range,
     CancellationToken cancellationToken)
 {
     try
     {
         return(await _stream
                .Find(_filter.Gte(_sequenceNumberExpression, range.From.Value)
                      & _filter.Lt(_sequenceNumberExpression, range.From.Value + range.Length))
                .Project(_eventToArtifact)
                .ToListAsync(cancellationToken).ConfigureAwait(false));
     }
     catch (MongoWaitQueueFullException ex)
     {
         throw new EventStoreUnavailable("Mongo wait queue is full", ex);
     }
 }
Example #3
0
 /// <inheritdoc/>
 public async Task <ISet <Artifact> > FetchInRangeAndPartition(PartitionId partitionId, StreamPositionRange range, CancellationToken cancellationToken)
 {
     ThrowIfNotConstructedWithPartitionIdExpression();
     return(await FetchTypesWithFilter(
                _filter.EqStringOrGuid(_partitionIdExpression, partitionId.Value)
                & _filter.Gte(_sequenceNumberExpression, range.From.Value)
                & _filter.Lt(_sequenceNumberExpression, range.From.Value + range.Length),
                cancellationToken).ConfigureAwait(false));
 }
Example #4
0
 /// <inheritdoc/>
 public Task <ISet <Artifact> > FetchInRange(StreamPositionRange range, CancellationToken cancellationToken)
 => FetchTypesWithFilter(
     _filter.Gte(_sequenceNumberExpression, range.From.Value)
     & _filter.Lt(_sequenceNumberExpression, range.From.Value + range.Length),
     cancellationToken);