@@ -210,33 +210,69 @@ public sealed override IMongoDatabase GetDatabase(string name, MongoDatabaseSett
210
210
public sealed override IAsyncCursor < string > ListDatabaseNames (
211
211
CancellationToken cancellationToken = default ( CancellationToken ) )
212
212
{
213
- return UsingImplicitSession ( session => ListDatabaseNames ( session , cancellationToken ) , cancellationToken ) ;
213
+ return ListDatabaseNames ( options : null , cancellationToken ) ;
214
+ }
215
+
216
+ /// <inheritdoc />
217
+ public sealed override IAsyncCursor < string > ListDatabaseNames (
218
+ ListDatabaseNamesOptions options ,
219
+ CancellationToken cancellationToken = default ( CancellationToken ) )
220
+ {
221
+ return UsingImplicitSession ( session => ListDatabaseNames ( session , options , cancellationToken ) , cancellationToken ) ;
214
222
}
215
223
216
224
/// <inheritdoc />
217
225
public sealed override IAsyncCursor < string > ListDatabaseNames (
218
226
IClientSessionHandle session ,
219
227
CancellationToken cancellationToken = default ( CancellationToken ) )
220
228
{
221
- var options = new ListDatabasesOptions { NameOnly = true } ;
222
- var databases = ListDatabases ( session , options , cancellationToken ) ;
229
+ return ListDatabaseNames ( session , options : null , cancellationToken ) ;
230
+ }
231
+
232
+ /// <inheritdoc />
233
+ public sealed override IAsyncCursor < string > ListDatabaseNames (
234
+ IClientSessionHandle session ,
235
+ ListDatabaseNamesOptions options ,
236
+ CancellationToken cancellationToken = default ( CancellationToken ) )
237
+ {
238
+ var listDatabasesOptions = CreateListDatabasesOptionsFromListDatabaseNamesOptions ( options ) ;
239
+ var databases = ListDatabases ( session , listDatabasesOptions , cancellationToken ) ;
240
+
223
241
return CreateDatabaseNamesCursor ( databases ) ;
224
242
}
225
243
226
244
/// <inheritdoc />
227
245
public sealed override Task < IAsyncCursor < string > > ListDatabaseNamesAsync (
228
246
CancellationToken cancellationToken = default ( CancellationToken ) )
229
247
{
230
- return UsingImplicitSessionAsync ( session => ListDatabaseNamesAsync ( session , cancellationToken ) , cancellationToken ) ;
248
+ return ListDatabaseNamesAsync ( options : null , cancellationToken ) ;
249
+ }
250
+
251
+ /// <inheritdoc />
252
+ public sealed override Task < IAsyncCursor < string > > ListDatabaseNamesAsync (
253
+ ListDatabaseNamesOptions options ,
254
+ CancellationToken cancellationToken = default ( CancellationToken ) )
255
+ {
256
+ return UsingImplicitSessionAsync ( session => ListDatabaseNamesAsync ( session , options , cancellationToken ) , cancellationToken ) ;
257
+ }
258
+
259
+ /// <inheritdoc />
260
+ public sealed override Task < IAsyncCursor < string > > ListDatabaseNamesAsync (
261
+ IClientSessionHandle session ,
262
+ CancellationToken cancellationToken = default ( CancellationToken ) )
263
+ {
264
+ return ListDatabaseNamesAsync ( session , options : null , cancellationToken ) ;
231
265
}
232
266
233
267
/// <inheritdoc />
234
268
public sealed override async Task < IAsyncCursor < string > > ListDatabaseNamesAsync (
235
269
IClientSessionHandle session ,
270
+ ListDatabaseNamesOptions options ,
236
271
CancellationToken cancellationToken = default ( CancellationToken ) )
237
272
{
238
- var options = new ListDatabasesOptions { NameOnly = true } ;
239
- var databases = await ListDatabasesAsync ( session , options , cancellationToken ) . ConfigureAwait ( false ) ;
273
+ var listDatabasesOptions = CreateListDatabasesOptionsFromListDatabaseNamesOptions ( options ) ;
274
+ var databases = await ListDatabasesAsync ( session , listDatabasesOptions , cancellationToken ) . ConfigureAwait ( false ) ;
275
+
240
276
return CreateDatabaseNamesCursor ( databases ) ;
241
277
}
242
278
@@ -475,12 +511,25 @@ private ListDatabasesOperation CreateListDatabaseOperation(
475
511
{
476
512
return new ListDatabasesOperation ( messageEncoderSettings )
477
513
{
514
+ AuthorizedDatabases = options . AuthorizedDatabases ,
478
515
Filter = options . Filter ? . Render ( BsonDocumentSerializer . Instance , BsonSerializer . SerializerRegistry ) ,
479
516
NameOnly = options . NameOnly ,
480
517
RetryRequested = _settings . RetryReads
481
518
} ;
482
519
}
483
520
521
+ private ListDatabasesOptions CreateListDatabasesOptionsFromListDatabaseNamesOptions ( ListDatabaseNamesOptions options )
522
+ {
523
+ var listDatabasesOptions = new ListDatabasesOptions { NameOnly = true } ;
524
+ if ( options != null )
525
+ {
526
+ listDatabasesOptions . AuthorizedDatabases = options . AuthorizedDatabases ;
527
+ listDatabasesOptions . Filter = options . Filter ;
528
+ }
529
+
530
+ return listDatabasesOptions ;
531
+ }
532
+
484
533
private IReadBindingHandle CreateReadBinding ( IClientSessionHandle session )
485
534
{
486
535
var readPreference = _settings . ReadPreference ;
0 commit comments