예제 #1
0
        private async Task <bool> UserExistsAsync(IChannelSourceHandle channelSource, CancellationToken cancellationToken)
        {
            try
            {
                var command   = new BsonDocument("usersInfo", _username);
                var operation = new ReadCommandOperation <BsonDocument>(_databaseNamespace, command, BsonDocumentSerializer.Instance, _messageEncoderSettings);
                var result    = await operation.ExecuteAsync(channelSource, ReadPreference.Primary, cancellationToken).ConfigureAwait(false);

                BsonValue users;
                if (result.TryGetValue("users", out users) && users.IsBsonArray && users.AsBsonArray.Count > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (MongoCommandException ex)
            {
                if (ex.Code == 13)
                {
                    return(false);
                }

                throw;
            }
        }
예제 #2
0
 public static string GetStorageEngine()
 {
     using (var binding = GetReadWriteBinding())
     {
         var       command   = new BsonDocument("serverStatus", 1);
         var       operation = new ReadCommandOperation <BsonDocument>(DatabaseNamespace.Admin, command, BsonDocumentSerializer.Instance, __messageEncoderSettings);
         var       response  = operation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult();
         BsonValue storageEngine;
         if (response.TryGetValue("storageEngine", out storageEngine) && storageEngine.AsBsonDocument.Contains("name"))
         {
             return(storageEngine["name"].AsString);
         }
         else
         {
             return("mmapv1");
         }
     }
 }
 public static IEnumerable <string> GetModules()
 {
     using (var binding = GetReadBinding())
     {
         var       command   = new BsonDocument("buildinfo", 1);
         var       operation = new ReadCommandOperation <BsonDocument>(DatabaseNamespace.Admin, command, BsonDocumentSerializer.Instance, __messageEncoderSettings);
         var       response  = operation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult();
         BsonValue modules;
         if (response.TryGetValue("modules", out modules))
         {
             return(modules.AsBsonArray.Select(x => x.ToString()));
         }
         else
         {
             return(Enumerable.Empty <string>());
         }
     }
 }
예제 #4
0
        // methods
        public async Task <IEnumerable <BsonDocument> > ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken)
        {
            var filter    = _username == null ? (BsonValue)1 : _username;
            var command   = new BsonDocument("usersInfo", filter);
            var operation = new ReadCommandOperation <BsonDocument>(_databaseNamespace, command, BsonDocumentSerializer.Instance, _messageEncoderSettings);
            var result    = await operation.ExecuteAsync(binding, cancellationToken).ConfigureAwait(false);

            BsonValue users;

            if (result.TryGetValue("users", out users) && users.IsBsonArray)
            {
                return(users.AsBsonArray.Select(v => v.AsBsonDocument));
            }
            else
            {
                return(Enumerable.Empty <BsonDocument>());
            }
        }
 public static string GetStorageEngine()
 {
     using (var binding = GetReadWriteBinding())
     {
         var command = new BsonDocument("serverStatus", 1);
         var operation = new ReadCommandOperation<BsonDocument>(DatabaseNamespace.Admin, command, BsonDocumentSerializer.Instance, __messageEncoderSettings);
         var response = operation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult();
         BsonValue storageEngine;
         if (response.TryGetValue("storageEngine", out storageEngine) && storageEngine.AsBsonDocument.Contains("name"))
         {
             return storageEngine["name"].AsString;
         }
         else
         {
             return "mmapv1";
         }
     }
 }
        private BsonDocument GetCollectionStats(IReadBinding binding, bool async)
        {
            var command = new BsonDocument
            {
                { "collStats", _collectionNamespace.CollectionName }
            };
            var operation = new ReadCommandOperation<BsonDocument>(_collectionNamespace.DatabaseNamespace, command, BsonDocumentSerializer.Instance, _messageEncoderSettings);

            if (async)
            {
                return operation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult();
            }
            else
            {
                return operation.Execute(binding, CancellationToken.None);
            }
        }
        public Task<BsonDocument> GetCollectionStatsAsync(IReadBinding binding)
        {
            var command = new BsonDocument
            {
                { "collStats", _collectionNamespace.CollectionName }
            };
            var operation = new ReadCommandOperation<BsonDocument>(_collectionNamespace.DatabaseNamespace, command, BsonDocumentSerializer.Instance, _messageEncoderSettings);

            return operation.ExecuteAsync(binding, CancellationToken.None);
        }
 public static IEnumerable<string> GetModules()
 {
     using (var binding = GetReadBinding())
     {
         var command = new BsonDocument("buildinfo", 1);
         var operation = new ReadCommandOperation<BsonDocument>(DatabaseNamespace.Admin, command, BsonDocumentSerializer.Instance, __messageEncoderSettings);
         var response = operation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult();
         BsonValue modules;
         if (response.TryGetValue("modules", out modules))
         {
             return modules.AsBsonArray.Select(x => x.ToString());
         }
         else
         {
             return Enumerable.Empty<string>();
         }
     }
 }