Make LocalDB database installation more robust

This commit is contained in:
Shaun Walker
2019-05-06 08:59:51 -04:00
parent d71de1c21f
commit 4c3d76dac6
7 changed files with 47 additions and 30 deletions

View File

@ -3,6 +3,9 @@ using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Blazor.Hosting;
using Microsoft.AspNetCore;
using Microsoft.Extensions.Configuration;
using System.IO;
using System.Text;
using System;
namespace Oqtane.Server
{
@ -11,6 +14,7 @@ namespace Oqtane.Server
#if DEBUG || RELEASE
public static void Main(string[] args)
{
PrepareConfiguration();
CreateHostBuilder(args).Build().Run();
}
@ -25,6 +29,7 @@ namespace Oqtane.Server
#if WASM
public static void Main(string[] args)
{
PrepareConfiguration();
BuildWebHost(args).Run();
}
@ -36,5 +41,25 @@ namespace Oqtane.Server
.UseStartup<Startup>()
.Build();
#endif
private static void PrepareConfiguration()
{
string config = "";
using (StreamReader reader = new StreamReader(Directory.GetCurrentDirectory() + "\\appsettings.json"))
{
config = reader.ReadToEnd();
}
// if using LocalDB create a unique database name
if (config.Contains("AttachDbFilename=|DataDirectory|\\\\Oqtane.mdf"))
{
string timestamp = DateTime.Now.ToString("yyyyMMddHHmm");
config = config.Replace("Initial Catalog=Oqtane", "Initial Catalog=Oqtane-" + timestamp)
.Replace("AttachDbFilename=|DataDirectory|\\\\Oqtane.mdf", "AttachDbFilename=|DataDirectory|\\\\Oqtane-" + timestamp + ".mdf");
using (StreamWriter writer = new StreamWriter(Directory.GetCurrentDirectory() + "\\appsettings.json"))
{
writer.WriteLine(config);
}
}
}
}
}