58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
//#define SQLite
|
|
//#define MySQL
|
|
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using System.Collections.Generic;
|
|
|
|
#if SQLite
|
|
using System;
|
|
using System.IO;
|
|
using UniTest;
|
|
#endif
|
|
|
|
namespace Bootstrap.DataAccess
|
|
{
|
|
public class BootstrapAdminStartup
|
|
{
|
|
private readonly string DBFile;
|
|
|
|
public BootstrapAdminStartup()
|
|
{
|
|
var sqlConnectionStrings = "Data Source=.;Initial Catalog=UnitTest;User ID=sa;Password=sa";
|
|
var mysqlConnectionStrings = "Server=.;Database=UnitTest;Uid=argozhang;Pwd=argo@163.com;SslMode=none;";
|
|
var config = new ConfigurationBuilder().AddInMemoryCollection(new KeyValuePair<string, string>[] {
|
|
new KeyValuePair<string, string>("ConnectionStrings:ba", sqlConnectionStrings),
|
|
new KeyValuePair<string, string>("DB:0:Enabled", "false"),
|
|
|
|
new KeyValuePair<string, string>("DB:1:Enabled", "false"),
|
|
new KeyValuePair<string, string>("DB:1:ProviderName", "SQLite"),
|
|
new KeyValuePair<string, string>("DB:1:ConnectionStrings:ba", "Data Source=UnitTest.db"),
|
|
|
|
new KeyValuePair<string, string>("DB:2:Enabled", "false"),
|
|
new KeyValuePair<string, string>("DB:2:ProviderName", "MySql"),
|
|
new KeyValuePair<string, string>("DB:2:ConnectionStrings:ba", mysqlConnectionStrings),
|
|
new KeyValuePair<string, string>("LongbowCache:Enabled", "false")
|
|
}).Build();
|
|
|
|
var sc = new ServiceCollection();
|
|
sc.AddSingleton<IConfiguration>(config);
|
|
sc.AddConfigurationManager(config);
|
|
sc.AddCacheManager(config);
|
|
sc.AddDbAdapter();
|
|
|
|
#if SQLite
|
|
config["DB:1:Enabled"] = "true";
|
|
|
|
// Copy File
|
|
var dbPath = TestHelper.RetrievePath($"UnitTest{Path.DirectorySeparatorChar}DB{Path.DirectorySeparatorChar}UnitTest.db");
|
|
DBFile = Path.Combine(AppContext.BaseDirectory, "UnitTest.db");
|
|
if (!File.Exists(DBFile)) File.Copy(dbPath, DBFile);
|
|
|
|
#elif MySQL
|
|
config["DB:2:Enabled"]= "true";
|
|
#endif
|
|
}
|
|
}
|
|
}
|