using System.Collections.Generic; using Bit.Core.Repositories.EntityFramework; using Bit.Core.Settings; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; namespace Bit.Core.Test.Helpers.Factories { public static class GlobalSettingsFactory { public static GlobalSettings GlobalSettings { get; } = new GlobalSettings(); static GlobalSettingsFactory() { var configBuilder = new ConfigurationBuilder().AddUserSecrets(); var Configuration = configBuilder.Build(); ConfigurationBinder.Bind(Configuration.GetSection("GlobalSettings"), GlobalSettings); } } public static class DatabaseOptionsFactory { public static List> Options { get; } = new List>(); static DatabaseOptionsFactory() { var globalSettings = GlobalSettingsFactory.GlobalSettings; if (!string.IsNullOrWhiteSpace(GlobalSettingsFactory.GlobalSettings.PostgreSql?.ConnectionString)) { Options.Add(new DbContextOptionsBuilder().UseNpgsql(globalSettings.PostgreSql.ConnectionString).Options); } if (!string.IsNullOrWhiteSpace(GlobalSettingsFactory.GlobalSettings.MySql?.ConnectionString)) { var mySqlConnectionString = globalSettings.MySql.ConnectionString; Options.Add(new DbContextOptionsBuilder().UseMySql(mySqlConnectionString, ServerVersion.AutoDetect(mySqlConnectionString)).Options); } } } }