Skip to content

Commit dcc7b0d

Browse files
committed
Fix #10.
1 parent 57ff19f commit dcc7b0d

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/Serilog.Ui.MongoDbProvider/Extensions/SerilogUiOptionBuilderExtensions.cs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,53 @@
55

66
namespace Serilog.Ui.MongoDbProvider
77
{
8+
/// <summary>
9+
/// SerilogUI option builder extensions.
10+
/// </summary>
811
public static class SerilogUiOptionBuilderExtensions
912
{
13+
/// <summary>
14+
/// Adds MongoDB log data provider.
15+
/// </summary>
16+
/// <param name="optionsBuilder">The options builder.</param>
17+
/// <param name="connectionString">The connection string.</param>
18+
/// <param name="collectionName">Name of the collection.</param>
19+
/// <exception cref="ArgumentNullException">connectionString</exception>
20+
/// <exception cref="ArgumentNullException">collectionName</exception>
21+
public static void UseMongoDb(
22+
this SerilogUiOptionsBuilder optionsBuilder,
23+
string connectionString,
24+
string collectionName
25+
)
26+
{
27+
if (string.IsNullOrEmpty(connectionString))
28+
throw new ArgumentNullException(nameof(connectionString));
29+
30+
if (string.IsNullOrEmpty(collectionName))
31+
throw new ArgumentNullException(nameof(collectionName));
32+
33+
var mongoProvider = new MongoDbOptions
34+
{
35+
ConnectionString = connectionString,
36+
DatabaseName = MongoUrl.Create(connectionString).DatabaseName,
37+
CollectionName = collectionName
38+
};
39+
40+
((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddSingleton(mongoProvider);
41+
((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddSingleton<IMongoClient>(o => new MongoClient(connectionString));
42+
((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddScoped<IDataProvider, MongoDbDataProvider>();
43+
}
44+
45+
/// <summary>
46+
/// Adds MongoDB log data provider.
47+
/// </summary>
48+
/// <param name="optionsBuilder">The options builder.</param>
49+
/// <param name="connectionString">The connection string without database name.</param>
50+
/// <param name="databaseName">Name of the database.</param>
51+
/// <param name="collectionName">Name of the collection.</param>
52+
/// <exception cref="ArgumentNullException">connectionString</exception>
53+
/// <exception cref="ArgumentNullException">databaseName</exception>
54+
/// <exception cref="ArgumentNullException">collectionName</exception>
1055
public static void UseMongoDb(
1156
this SerilogUiOptionsBuilder optionsBuilder,
1257
string connectionString,

0 commit comments

Comments
 (0)