Skip to content

Commit 110a1cd

Browse files
committed
Added support for multiple provider connection strings. Implements csharpfritz#286
1 parent 42ec4cd commit 110a1cd

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

CoreWiki.Data/StartupExtensions.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ public static class StartupExtensions
2020
public static IServiceCollection AddRepositories(this IServiceCollection services, IConfiguration config) {
2121

2222
Action<DbContextOptionsBuilder> optionsBuilder;
23-
var connectionString = config.GetConnectionString("CoreWikiData");
23+
var provider = config["DataProvider"].ToLowerInvariant();
24+
var connectionString = config.GetConnectionString($"CoreWikiData:{provider}");
2425

25-
switch (config["DataProvider"].ToLowerInvariant()) {
26+
switch (provider) {
2627
case "postgres":
2728
services.AddEntityFrameworkNpgsql();
2829
optionsBuilder = options => options.UseNpgsql(connectionString);

CoreWiki/Areas/Identity/IdentityHostingStartup.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,16 @@ private static void ConfigureDb(WebHostBuilderContext context, IServiceCollectio
5656
{
5757

5858
Action<DbContextOptionsBuilder> optionsBuilder;
59-
var connectionString = context.Configuration.GetConnectionString("CoreWikiIdentityContextConnection");
59+
var provider = context.Configuration["DataProvider"].ToLowerInvariant();
60+
var connectionString = context.Configuration.GetConnectionString($"CoreWikiIdentity:{provider}");
6061

61-
switch (context.Configuration["DataProvider"].ToLowerInvariant())
62+
switch(provider)
6263
{
6364
case "postgres":
6465
optionsBuilder = options => options.UseNpgsql(connectionString);
6566
break;
6667
default:
67-
connectionString = !string.IsNullOrEmpty(connectionString) ? connectionString : "DataSource =./App_Data/wikiIdentity.db";
68+
connectionString = !string.IsNullOrEmpty(connectionString) ? connectionString : "DataSource=./App_Data/wikiIdentity.db";
6869
optionsBuilder = options => options.UseSqlite(connectionString);
6970
break;
7071
}

CoreWiki/appsettings.json

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@
66
"Default": "Warning"
77
}
88
},
9-
"DataProvider": "",
9+
"DataProvider": "",
1010
"ConnectionStrings": {
11-
//"CoreWikiIdentityContextConnection": "host=localhost;port=5432;user id=postgres;password=password",
12-
//"CoreWikiData": "host=localhost;port=5432;user id=postgres;password=password"
13-
"CoreWikiIdentityContextConnection": "DataSource=./App_Data/wikiIdentity.db",
14-
"CoreWikiData": "DataSource=./App_Data/wikiContent.db"
11+
"CoreWikiIdentity": {
12+
"": "DataSource=./App_Data/wikiIdentity.db",
13+
"postgres": "host=localhost;port=5432;user id=postgres;password=password"
14+
},
15+
"CoreWikiData": {
16+
"": "DataSource=./App_Data/wikiContent.db",
17+
"postgres": "host=localhost;port=5432;user id=postgres;password=password"
18+
}
1519
},
1620
"Authentication": {
1721
"Microsoft": {
@@ -32,12 +36,12 @@
3236
"FromName": "No Reply Team"
3337
},
3438
"CspSettings": {
35-
"ImageSources": [ ],
36-
"StyleSources": [ ],
37-
"ScriptSources": [ ],
38-
"FontSources": [ ],
39-
"FormActions": [ ],
40-
"FrameAncestors": [ ],
41-
"ReportUris": [ ]
39+
"ImageSources": [],
40+
"StyleSources": [],
41+
"ScriptSources": [],
42+
"FontSources": [],
43+
"FormActions": [],
44+
"FrameAncestors": [],
45+
"ReportUris": []
4246
}
4347
}

0 commit comments

Comments
 (0)