Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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