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"));
        }
Esempio n. 2
0
        /// <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;
        }