public static MongoServerSettings FromConnectionStringBuilder(MongoConnectionStringBuilder builder)
{
MongoCredentials defaultCredentials = null;
if (builder.Username != null && builder.Password != null)
{
defaultCredentials = new MongoCredentials(builder.Username, builder.Password);
}
var serverSettings = new MongoServerSettings();
serverSettings.ConnectionMode = builder.ConnectionMode;
serverSettings.ConnectTimeout = builder.ConnectTimeout;
serverSettings.CredentialsStore = new MongoCredentialsStore();
serverSettings.DefaultCredentials = defaultCredentials;
serverSettings.GuidRepresentation = builder.GuidRepresentation;
serverSettings.IPv6 = builder.IPv6;
serverSettings.MaxConnectionIdleTime = builder.MaxConnectionIdleTime;
serverSettings.MaxConnectionLifeTime = builder.MaxConnectionLifeTime;
serverSettings.MaxConnectionPoolSize = builder.MaxConnectionPoolSize;
serverSettings.MinConnectionPoolSize = builder.MinConnectionPoolSize;
serverSettings.ReadPreference = (builder.ReadPreference == null) ? ReadPreference.Primary : builder.ReadPreference.Clone();
serverSettings.ReplicaSetName = builder.ReplicaSetName;
serverSettings.SecondaryAcceptableLatency = builder.SecondaryAcceptableLatency;
serverSettings.Servers = new List<MongoServerAddress>(builder.Servers);
serverSettings.SocketTimeout = builder.SocketTimeout;
serverSettings.UseSsl = builder.UseSsl;
serverSettings.VerifySslCertificate = builder.VerifySslCertificate;
serverSettings.WaitQueueSize = builder.ComputedWaitQueueSize;
serverSettings.WaitQueueTimeout = builder.WaitQueueTimeout;
#pragma warning disable 618
serverSettings.WriteConcern = builder.GetWriteConcern(MongoDefaults.SafeMode.Enabled);
#pragma warning restore
return serverSettings;
}