public override async Task InstallOrUpdateAsync(IServiceProvider serviceProvider, InstallOrUpdate installOrUpdate) { XscfModuleServiceExtension xscfModuleServiceExtension = serviceProvider.GetService <XscfModuleServiceExtension>(); SenparcEntities senparcEntities = (SenparcEntities)xscfModuleServiceExtension.BaseData.BaseDB.BaseDataContext; //更新数据库 var pendingMigs = await senparcEntities.Database.GetPendingMigrationsAsync(); if (pendingMigs.Count() > 0) { senparcEntities.ResetMigrate(); //重置合并状态 senparcEntities.Migrate(); //进行合并 } var systemModule = xscfModuleServiceExtension.GetObject(z => z.Uid == this.Uid); if (systemModule == null) { //只在未安装的情况下进行安装,InstallModuleAsync会访问到此方法,不做判断可能会引发死循环。 //常规模块中请勿在此方法中自动安装模块! await xscfModuleServiceExtension.InstallModuleAsync(this.Uid).ConfigureAwait(false); } await base.InstallOrUpdateAsync(serviceProvider, installOrUpdate); }
public IndexModel(IServiceProvider serviceProvider, XscfModuleServiceExtension xscfModuleService, AdminUserInfoService accountService, SystemConfigService systemConfigService, SysMenuService sysMenuService) { _xscfModuleService = xscfModuleService; _accountInfoService = accountService; _sysMenuService = sysMenuService; _systemConfigService = systemConfigService; _serviceProvider = serviceProvider; }
public XscfModuleIndexModel(IServiceProvider serviceProvider, XscfModuleServiceExtension xscfModuleService, SysMenuService sysMenuService) { CurrentMenu = "XscfModule"; this._serviceProvider = serviceProvider; this._xscfModuleService = xscfModuleService; this._sysMenuService = sysMenuService; }