Пример #1
0
        /// <summary>
        /// 扫描新模块
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> OnGetScanAsync(string uid)
        {
            var result = await _xscfModuleService.InstallModuleAsync(uid);

            XscfModules = result.Item1;
            base.SetMessager(Scf.Core.Enums.MessageType.info, result.Item2, true);

            //if (backpage=="Start")
            return(RedirectToPage("Start", new { uid = uid }));//始终到详情页
            //return RedirectToPage("Index");
        }
Пример #2
0
        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);
        }