// private methods
 private IReadOperation <IAsyncCursor <BsonDocument> > CreateOperation(IChannel channel)
 {
     if (SupportedFeatures.IsListCollectionsCommandSupported(channel.ConnectionDescription.ServerVersion))
     {
         return(new ListCollectionsUsingCommandOperation(_databaseNamespace, _messageEncoderSettings)
         {
             Filter = _filter
         });
     }
     else
     {
         return(new ListCollectionsUsingQueryOperation(_databaseNamespace, _messageEncoderSettings)
         {
             Filter = _filter
         });
     }
 }