Ejemplo n.º 1
0
        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));//已经安装完毕,且存在管理员则不进行安装
        }
Ejemplo n.º 2
0
        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));//已经安装完毕,且存在管理员则不进行安装
        }
Ejemplo n.º 3
0
        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));//已经安装完毕,且存在管理员则不进行安装
        }