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