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