public async Task <IActionResult> OnGetAsync() { try { var adminUserInfo = await _accountInfoService.GetObjectAsync(z => true);//检查是否已初始化 if (adminUserInfo == null) { throw new Exception("需要初始化"); } } catch (Exception) { //开始安装系统模块(Service) Senparc.Service.Register serviceRegister = new Service.Register(); await serviceRegister.InstallOrUpdateAsync(_serviceProvider, Scf.Core.Enums.InstallOrUpdate.Install); //开始安装系统模块(Admin) Senparc.Areas.Admin.Register adminRegister = new Areas.Admin.Register(); await adminRegister.InstallOrUpdateAsync(_serviceProvider, Scf.Core.Enums.InstallOrUpdate.Install); //((SenparcEntities)_accountInfoService.BaseData.BaseDB.BaseDataContext).ResetMigrate();//重置合并状态 //((SenparcEntities)_accountInfoService.BaseData.BaseDB.BaseDataContext).Migrate();//进行合并 return(Page()); } //base.Response.StatusCode = 404; return(new StatusCodeResult(404));//已经安装完毕,且存在管理员则不进行安装 }
public async Task <IActionResult> OnGetAsync() { try { MultipleDatabaseType = DatabaseConfigurationFactory.Instance.Current.MultipleDatabaseType; var adminUserInfo = await _accountInfoService.GetObjectAsync(z => true);//检查是否已初始化 if (adminUserInfo == null) { throw new Exception("需要初始化"); } } catch (Exception) { { //开始安装系统模块(Service) Senparc.Service.Register serviceRegister = new Service.Register(); await serviceRegister.InstallOrUpdateAsync(_serviceProvider, Ncf.Core.Enums.InstallOrUpdate.Install); //启用系统模块(Service) var serviceModule = await _xncfModuleService.GetObjectAsync(z => z.Uid == serviceRegister.Uid); serviceModule.UpdateState(Ncf.Core.Enums.XncfModules_State.开放); } { //开始安装系统模块(Admin) Senparc.Areas.Admin.Register adminRegister = new Areas.Admin.Register(); await adminRegister.InstallOrUpdateAsync(_serviceProvider, Ncf.Core.Enums.InstallOrUpdate.Install); //启用系统模块(Admin) var adminModule = await _xncfModuleService.GetObjectAsync(z => z.Uid == adminRegister.Uid); adminModule.UpdateState(Ncf.Core.Enums.XncfModules_State.开放); //一次性保存修改 await _xncfModuleService.SaveObjectAsync(adminModule).ConfigureAwait(false); } //((SenparcEntities)_accountInfoService.BaseData.BaseDB.BaseDataContext).ResetMigrate();//重置合并状态 //((SenparcEntities)_accountInfoService.BaseData.BaseDB.BaseDataContext).Migrate();//进行合并 return(Page()); } //base.Response.StatusCode = 404; return(new StatusCodeResult(404));//已经安装完毕,且存在管理员则不进行安装 }
public async Task <IActionResult> OnGetAsync() { try { Console.WriteLine("进入安装程序,检测是否需要初始化"); MultipleDatabaseType = DatabaseConfigurationFactory.Instance.Current.MultipleDatabaseType; var adminUserInfo = await _accountInfoService.GetObjectAsync(z => true);//检查是否已初始化 if (adminUserInfo == null) { throw new Exception("需要初始化"); } } catch (Exception) { { Senparc.Service.Register serviceRegister = new Service.Register(); //添加初始化多租户信息 if (SiteConfig.SenparcCoreSetting.EnableMultiTenant) { var httpContext = _httpContextAccessor.Value.HttpContext; try { //初始化数据库 var(initDbSuccess, initDbMsg) = await serviceRegister.InitDatabase(_serviceProvider, _tenantInfoService, _httpContextAccessor.Value.HttpContext); if (!initDbSuccess) { throw new NcfDatabaseException($"ServiceRegister.InitDatabase 失败:{initDbMsg}", DatabaseConfigurationFactory.Instance.Current.GetType()); } var tenantInfo = await _tenantInfoService.CreateInitTenantInfoAsync(httpContext); //重置租户状态 CreatedRequestTenantInfo = await _tenantInfoService.SetScopedRequestTenantInfoAsync(httpContext); TenantInfoDto = _tenantInfoService.Mapper.Map <TenantInfoDto>(await _tenantInfoService.GetObjectAsync(z => z.Id == CreatedRequestTenantInfo.Id)); } catch (Exception ex) { //如果已经安装过,则不处理 //TODO:特定的Exception Console.WriteLine(ex.Message); throw; } finally { } } //开始安装系统模块(Service) await serviceRegister.InstallOrUpdateAsync(_serviceProvider, Ncf.Core.Enums.InstallOrUpdate.Install); //启用系统模块(Service) var serviceModule = await _xncfModuleService.GetObjectAsync(z => z.Uid == serviceRegister.Uid); serviceModule.UpdateState(Ncf.Core.Enums.XncfModules_State.开放); } { //开始安装系统模块(Admin) Senparc.Areas.Admin.Register adminRegister = new Areas.Admin.Register(); await adminRegister.InstallOrUpdateAsync(_serviceProvider, Ncf.Core.Enums.InstallOrUpdate.Install); //启用系统模块(Admin) var adminModule = await _xncfModuleService.GetObjectAsync(z => z.Uid == adminRegister.Uid); adminModule.UpdateState(Ncf.Core.Enums.XncfModules_State.开放); //一次性保存修改 await _xncfModuleService.SaveObjectAsync(adminModule).ConfigureAwait(false); } //((SenparcEntities)_accountInfoService.BaseData.BaseDB.BaseDataContext).ResetMigrate();//重置合并状态 //((SenparcEntities)_accountInfoService.BaseData.BaseDB.BaseDataContext).Migrate();//进行合并 return(Page()); } //base.Response.StatusCode = 404; return(new StatusCodeResult(404));//已经安装完毕,且存在管理员则不进行安装 }