Пример #1
0
 public override Task <IAsyncCursor <TResult> > ToCursorAsync(CancellationToken cancellationToken)
 {
     if (_session == null)
     {
         return(_database.AggregateAsync(_pipeline, _options, cancellationToken));
     }
     else
     {
         return(_database.AggregateAsync(_session, _pipeline, _options, cancellationToken));
     }
 }
Пример #2
0
        public Task <IAsyncCursor <TResult> > AggregateAsync <TResult>(
            PipelineDefinition <NoPipelineInput, TResult> pipeline,
            AggregateOptions?options            = null,
            CancellationToken cancellationToken = default)
        {
            if (TryGetSession(out IClientSessionHandle? session))
            {
                return(_database.AggregateAsync(session, pipeline, options, cancellationToken));
            }

            return(_database.AggregateAsync(pipeline, options, cancellationToken));
        }
Пример #3
0
 protected override List <BsonDocument> ExecuteAndGetResult(IMongoDatabase database, IMongoCollection <BsonDocument> collection, bool async)
 {
     if (collection == null)
     {
         if (async)
         {
             var cursor = database.AggregateAsync <BsonDocument>(_stages, _options).GetAwaiter().GetResult();
             return(cursor.ToListAsync().GetAwaiter().GetResult());
         }
         else
         {
             return(database.Aggregate <BsonDocument>(_stages, _options).ToList());
         }
     }
     else
     {
         if (async)
         {
             var cursor = collection.AggregateAsync <BsonDocument>(_stages, _options).GetAwaiter().GetResult();
             return(cursor.ToListAsync().GetAwaiter().GetResult());
         }
         else
         {
             return(collection.Aggregate <BsonDocument>(_stages, _options).ToList());
         }
     }
 }
        public async Task <OperationResult> ExecuteAsync(CancellationToken cancellationToken)
        {
            try
            {
                var cursor = await _database.AggregateAsync(_pipeline, _options, cancellationToken);

                var result = await cursor.ToListAsync();

                return(OperationResult.FromResult(new BsonArray(result)));
            }
            catch (Exception exception)
            {
                return(OperationResult.FromException(exception));
            }
        }