2022-08-29 15:40:59 +02:00
|
|
|
|
using Bit.Core.Test.Helpers.Factories;
|
|
|
|
|
|
using Bit.Infrastructure.EntityFramework.Repositories;
|
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Bit.Infrastructure.EFIntegration.Test.Helpers;
|
2022-08-29 14:53:16 -04:00
|
|
|
|
|
2022-08-29 15:40:59 +02:00
|
|
|
|
public static class DatabaseOptionsFactory
|
|
|
|
|
|
{
|
|
|
|
|
|
public static List<DbContextOptions<DatabaseContext>> Options { get; } = new();
|
|
|
|
|
|
|
|
|
|
|
|
static DatabaseOptionsFactory()
|
2022-08-29 14:53:16 -04:00
|
|
|
|
{
|
2022-08-29 15:40:59 +02:00
|
|
|
|
var globalSettings = GlobalSettingsFactory.GlobalSettings;
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(GlobalSettingsFactory.GlobalSettings.PostgreSql?.ConnectionString))
|
2022-08-29 14:53:16 -04:00
|
|
|
|
{
|
2022-08-29 15:40:59 +02:00
|
|
|
|
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
|
|
|
|
|
Options.Add(new DbContextOptionsBuilder<DatabaseContext>().UseNpgsql(globalSettings.PostgreSql.ConnectionString).Options);
|
2022-08-29 14:53:16 -04:00
|
|
|
|
}
|
2022-08-29 15:40:59 +02:00
|
|
|
|
if (!string.IsNullOrWhiteSpace(GlobalSettingsFactory.GlobalSettings.MySql?.ConnectionString))
|
|
|
|
|
|
{
|
|
|
|
|
|
var mySqlConnectionString = globalSettings.MySql.ConnectionString;
|
|
|
|
|
|
Options.Add(new DbContextOptionsBuilder<DatabaseContext>().UseMySql(mySqlConnectionString, ServerVersion.AutoDetect(mySqlConnectionString)).Options);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|