Skip to content

Commit

Permalink
Support configuring client settings (#359)
Browse files Browse the repository at this point in the history
  • Loading branch information
Turnerj authored Jun 3, 2023
1 parent c833858 commit e0a3d2e
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions src/MongoFramework/MongoDbConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ public class MongoDbConnection : IMongoDbConnection
public MongoUrl Url { get; protected set; }
private bool IsDisposed { get; set; }

private Action<MongoClientSettings> ConfigureSettings { get; init; }

private IMongoClient InternalClient;
public IMongoClient Client
{
Expand All @@ -23,6 +25,7 @@ public IMongoClient Client
if (InternalClient == null)
{
var settings = MongoClientSettings.FromUrl(Url);
ConfigureSettings?.Invoke(settings);
settings.LinqProvider = MongoDB.Driver.Linq.LinqProvider.V2;
InternalClient = new MongoClient(settings);
}
Expand All @@ -33,20 +36,20 @@ public IMongoClient Client

public IDiagnosticListener DiagnosticListener { get; set; } = new NoOpDiagnosticListener();

public static MongoDbConnection FromUrl(MongoUrl mongoUrl)
public static MongoDbConnection FromUrl(MongoUrl mongoUrl) => FromUrl(mongoUrl, configureSettings: null);
public static MongoDbConnection FromUrl(MongoUrl mongoUrl, Action<MongoClientSettings> configureSettings)
{
Check.NotNull(mongoUrl, nameof(mongoUrl));

return new MongoDbConnection
{
Url = mongoUrl
Url = mongoUrl,
ConfigureSettings = configureSettings
};
}

public static MongoDbConnection FromConnectionString(string connectionString)
{
return FromUrl(new MongoUrl(connectionString));
}
public static MongoDbConnection FromConnectionString(string connectionString) => FromConnectionString(connectionString, configureSettings: null);
public static MongoDbConnection FromConnectionString(string connectionString, Action<MongoClientSettings> configureSettings) => FromUrl(new MongoUrl(connectionString), configureSettings);

public IMongoDatabase GetDatabase()
{
Expand Down

0 comments on commit e0a3d2e

Please sign in to comment.