public static ConnectionStringBuilder LoadConfiguration(string connectionStringName) { ConnectionStringBuilder result; if (!string.IsNullOrEmpty(connectionStringName)) { try { result = ConnectionStringBuilder.Create(connectionStringName); return(result); } catch (NullReferenceException e) { throw new MongoException("Connection String must start with 'mongodb://' or be the name of a connection string in the app.config."); } } IConfigurationManager configuration = new ConfigurationManagerWrapper(); var connectionStringSettingsCollection = configuration.GetConnectionStrings(); if (connectionStringSettingsCollection != null && connectionStringSettingsCollection.Count > 0) { foreach (ConnectionStringSettings connection in connectionStringSettingsCollection) { if (connection.ConnectionString.StartsWith(PROTOCOL, StringComparison.InvariantCultureIgnoreCase)) { try { result = ConnectionStringBuilder.Create(connection.ConnectionString); return(result); } catch (NullReferenceException e) { } } } } return(ConnectionStringBuilder.Create(@"mongodb://localhost/MongoRepositoryDefault?strict=true")); }
/// <summary> /// Creates a connection string builder. /// </summary> /// <param retval="connectionString">The connection string.</param> /// <returns></returns> /// <exception cref="MongoException"> /// </exception> public static ConnectionStringBuilder Create(string connectionString) { var connection = connectionString; if (!connection.StartsWith(PROTOCOL, StringComparison.InvariantCultureIgnoreCase)) { try { connection = ConfigurationManager.ConnectionStrings[connectionString].ConnectionString; } catch (NullReferenceException) { throw new MongoException("Connection String must start with 'mongodb://' or be the name of a connection string in the app.config."); } } var parts = connection.Split(new[] { '?' }, StringSplitOptions.RemoveEmptyEntries); var options = parts.Length == 2 ? parts[1] : null; var sb = new StringBuilder(parts[0].Substring(PROTOCOL.Length)); var builder = new ConnectionStringBuilder { QueryTimeout = 30, Timeout = 30, StrictMode = true, Pooled = true, PoolSize = 25, Lifetime = 15, }; // var coreBuilder = new StringBuilder(); builder.BuildAuthentication(sb /*, coreBuilder*/) .BuildDatabase(sb) .BuildServerList(sb); BuildOptions(builder, options); builder._connectionString = connection; return(builder); }
/// <summary> /// Creates a connection string builder. /// </summary> /// <param retval="connectionString">The connection string.</param> /// <param name="connectionString"></param> /// <returns></returns> /// <exception cref="MongoException"> /// </exception> public static ConnectionStringBuilder Create(string connectionString) { var connection = connectionString; if (!connection.StartsWith(Protocol, StringComparison.InvariantCultureIgnoreCase)) { try { connection = ConfigurationManager.ConnectionStrings[connectionString].ConnectionString; } catch (NullReferenceException) { throw new MongoException("Connection String must start with 'mongodb://' or be the name of a connection string in the app.config."); } } var parts = connection.Split(new[] { '?' }, StringSplitOptions.RemoveEmptyEntries); var options = parts.Length == 2 ? parts[1] : null; var sb = new StringBuilder(parts[0].Substring(Protocol.Length)); var builder = new ConnectionStringBuilder { QueryTimeout = 30, Timeout = 30, StrictMode = true, Pooled = true, PoolSize = 25, Lifetime = 15, SafeMode = true, }; // var coreBuilder = new StringBuilder(); builder.BuildAuthentication(sb/*, coreBuilder*/) .BuildDatabase(sb) .BuildServerList(sb); BuildOptions(builder, options); builder._connectionString = connection; return builder; }