private static IMongoDatabase CreateMongoDatabase(string databaseName, MongoConnectionSettings connectionSettings) { var mongoClientSettings = new MongoClientSettings(); if (connectionSettings.Nodes != null && connectionSettings.Nodes.Length > 0) { var servers = new List <MongoServerAddress>(); foreach (var server in connectionSettings.Nodes) { MongoServerAddress serverAddress; if (MongoServerAddress.TryParse(server, out serverAddress)) { servers.Add(serverAddress); } } if (servers.Count > 0) { mongoClientSettings.Servers = servers; } } if (!string.IsNullOrWhiteSpace(databaseName) && !string.IsNullOrWhiteSpace(connectionSettings.UserName) && !string.IsNullOrWhiteSpace(connectionSettings.Password)) { var mongoCredential = MongoCredential.CreateCredential(databaseName, connectionSettings.UserName, connectionSettings.Password); mongoClientSettings.Credentials = new[] { mongoCredential }; } var mongoClient = new MongoClient(mongoClientSettings); return(mongoClient.GetDatabase(databaseName)); }
public MongoConnection(string databaseName, MongoConnectionSettings connectionSettings, IEnumerable <IMemberValueConverter> converters = null) { ApplyConverters(converters); _database = new Lazy <IMongoDatabase>(() => CreateMongoDatabase(databaseName, connectionSettings)); }