2020-12-24 14:53:09 +08:00

48 lines
1.6 KiB
C#

using Microsoft.Extensions.Configuration;
using Castle.MicroKernel.Registration;
using Abp.Events.Bus;
using Abp.Modules;
using Abp.Reflection.Extensions;
using MineTec.ProManager.Configuration;
using MineTec.ProManager.EntityFrameworkCore;
using MineTec.ProManager.Migrator.DependencyInjection;
namespace MineTec.ProManager.Migrator
{
[DependsOn(typeof(ProManagerEntityFrameworkModule))]
public class ProManagerMigratorModule : AbpModule
{
private readonly IConfigurationRoot _appConfiguration;
public ProManagerMigratorModule(ProManagerEntityFrameworkModule abpProjectNameEntityFrameworkModule)
{
abpProjectNameEntityFrameworkModule.SkipDbSeed = true;
_appConfiguration = AppConfigurations.Get(
typeof(ProManagerMigratorModule).GetAssembly().GetDirectoryPathOrNull()
);
}
public override void PreInitialize()
{
Configuration.DefaultNameOrConnectionString = _appConfiguration.GetConnectionString(
ProManagerCoreConsts.ConnectionStringName
);
Configuration.BackgroundJobs.IsJobExecutionEnabled = false;
Configuration.ReplaceService(
typeof(IEventBus),
() => IocManager.IocContainer.Register(
Component.For<IEventBus>().Instance(NullEventBus.Instance)
)
);
}
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(typeof(ProManagerMigratorModule).GetAssembly());
ServiceCollectionRegistrar.Register(IocManager);
}
}
}