private object ConstructInitializer()
{
var isGalenInitializationType = m_Config.InitializationConfig.Type.EndsWith("Galen.Ci.EntityFramework.Initialization");
if (!isGalenInitializationType)
{
Log.Debug(
"Configured initializer type of {type} is being loaded from target assembly {targetAssembly}.",
m_Config.InitializationConfig.Type,
TargetAssembly.FullName);
return TargetAssembly.CreateInstance(m_Config.InitializationConfig.Type);
}
Log.Debug(
"Configured initializer type of {type} is provided by CI framework. Loading types accordingly.",
m_Config.InitializationConfig.Type);
var assemblyQualifiedName = new ParsedAssemblyQualifiedName(m_Config.InitializationConfig.Type);
var isSecureSeededInitializer =
assemblyQualifiedName.GenericParameters.Count == 2 &&
assemblyQualifiedName.CSharpStyleName.Value.Contains("CreateSecureSeededDatabaseIfNotExists");
if (isSecureSeededInitializer)
{
Log.Debug(
"Configured initializer of type {type} is a CI based secure seeded initializer. Loading generic types...",
m_Config.InitializationConfig.Type);
return GetSecureSeededInitializer(assemblyQualifiedName);
}
var isSecureInitializer =
assemblyQualifiedName.GenericParameters.Count == 1 &&
assemblyQualifiedName.CSharpStyleName.Value.Contains("CreateSecureDatabaseIfNotExists");
if (isSecureInitializer)
{
Log.Debug(
"Configured initializer of type {type} is a CI based secure non-seeded initializer. Loading generic types...",
m_Config.InitializationConfig.Type);
return GetSecureInitializer(assemblyQualifiedName.GenericParameters.Single().TypeName);
}
return !assemblyQualifiedName.GenericParameters.Any()
? Type.GetType(m_Config.InitializationConfig.Type)
: null;
}