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().Instance(NullEventBus.Instance) ) ); } public override void Initialize() { IocManager.RegisterAssemblyByConvention(typeof(ProManagerMigratorModule).GetAssembly()); ServiceCollectionRegistrar.Register(IocManager); } } }