Пример #1
0
        public UnifiedListIndexesOperation Build(string targetCollectionId, BsonDocument arguments)
        {
            var collection = _entityMap.GetCollection(targetCollectionId);

            var listIndexesOptions       = new ListIndexesOptions();
            IClientSessionHandle session = null;

            if (arguments != null)
            {
                foreach (var argument in arguments)
                {
                    switch (argument.Name)
                    {
                    case "batchSize":
                        listIndexesOptions.BatchSize = argument.Value.ToInt32();
                        break;

                    case "session":
                        session = _entityMap.GetSession(argument.Value.AsString);
                        break;

                    default:
                        throw new FormatException($"Invalid {nameof(UnifiedListIndexesOperation)} argument name: '{argument.Name}'.");
                    }
                }
            }

            return(new UnifiedListIndexesOperation(collection, listIndexesOptions, session));
        }
Пример #2
0
 public UnifiedListIndexesOperation(
     IMongoCollection <BsonDocument> collection,
     ListIndexesOptions listIndexesOptions,
     IClientSessionHandle session)
 {
     _collection         = Ensure.IsNotNull(collection, nameof(collection));
     _listIndexesOptions = listIndexesOptions; // can be null
     _session            = session;
 }
 public Task <IAsyncCursor <BsonDocument> > ListAsync(IClientSessionHandle session, ListIndexesOptions options = null, CancellationToken cancellationToken = default)
 {
     return(Task.FromResult(List(session, options, cancellationToken)));
 }
 public Task <IAsyncCursor <BsonDocument> > ListAsync(ListIndexesOptions options, CancellationToken cancellationToken = default)
 {
     return(Task.FromResult(List(options, cancellationToken)));
 }
 public IAsyncCursor <BsonDocument> List(IClientSessionHandle session, ListIndexesOptions options = null, CancellationToken cancellationToken = default)
 {
     return(new FakeAsyncCursor <BsonDocument>(indexes.Values));
 }
 public IAsyncCursor <BsonDocument> List(ListIndexesOptions options, CancellationToken cancellationToken = default)
 {
     return(List(null, options, cancellationToken));
 }