public async Task <RepositoryResponse <bool> > InitLanguages([FromBody] List <MixLanguage> model) { if (model != null) { var result = new RepositoryResponse <bool>(); if (MixService.GetConfig <int>("InitStatus") == 3) { string culture = MixService.GetConfig <string>("DefaultCulture"); InitCmsService sv = new InitCmsService(); result = await sv.InitLanguagesAsync(culture, model); if (result.IsSucceed) { MixService.LoadFromDatabase(); MixService.SetConfig("InitStatus", 4); MixService.SetConfig("IsInit", true); MixService.SaveSettings(); _ = Services.CacheService.RemoveCacheAsync(); MixService.Reload(); } } return(result); } return(new RepositoryResponse <bool>()); }
private async Task <RepositoryResponse <bool> > InitStep1Async(InitCmsViewModel model) { MixService.SetConnectionString(MixConstants.CONST_CMS_CONNECTION, model.ConnectionString); MixService.SetConnectionString(MixConstants.CONST_MESSENGER_CONNECTION, model.ConnectionString); MixService.SetConnectionString(MixConstants.CONST_ACCOUNT_CONNECTION, model.ConnectionString); MixService.SetConfig(MixConstants.CONST_SETTING_DATABASE_PROVIDER, model.DatabaseProvider.ToString()); MixService.SetConfig(MixConstants.CONST_SETTING_LANGUAGE, model.Culture.Specificulture); MixService.SaveSettings(); var result = await InitCmsService.InitCms(model.SiteName, model.Culture); if (result.IsSucceed) { await InitRolesAsync(); result.IsSucceed = true; MixService.LoadFromDatabase(); MixService.SetConfig <string>("DefaultCulture", model.Culture.Specificulture); MixService.SetConfig("InitStatus", 1); MixService.SaveSettings(); //MixService.Reload(); } else { // if cannot init cms // => reload from default settings // => save to appSettings MixService.Reload(); MixService.SaveSettings(); } return(result); }
private async Task <RepositoryResponse <bool> > InitCmsAsync(InitCmsViewModel model) { var result = new RepositoryResponse <bool>(); MixService.SetConnectionString(MixConstants.CONST_CMS_CONNECTION, model.ConnectionString); MixService.SetConnectionString(MixConstants.CONST_MESSENGER_CONNECTION, model.ConnectionString); MixService.SetConnectionString(MixConstants.CONST_ACCOUNT_CONNECTION, model.ConnectionString); MixService.SetConfig(MixConstants.CONST_SETTING_IS_MYSQL, model.IsMysql); MixService.SetConfig(MixConstants.CONST_SETTING_DATABASE_PROVIDER, model.DatabaseProvider); MixService.SetConfig(MixConstants.CONST_SETTING_LANGUAGE, model.Culture.Specificulture); InitCmsService sv = new InitCmsService(); var initResult = await sv.InitCms(model.SiteName, model.Culture); if (initResult.IsSucceed) { await InitRolesAsync(); result.IsSucceed = true; MixService.LoadFromDatabase(); MixService.SetConfig <bool>("IsInit", true); MixService.SetConfig <string>("DefaultCulture", model.Culture.Specificulture); MixService.SaveSettings(); MixService.Reload(); } else { // if cannot init cms // => reload from default settings // => save to appSettings MixService.Reload(); MixService.SaveSettings(); if (initResult.Exception != null) { result.Errors.Add(initResult.Exception.Message); result.Exception = initResult.Exception; } foreach (var item in initResult.Errors) { result.Errors.Add(item); } } return(result); }
// Mix: Check custom cms config private void VerifyInitData(IServiceCollection services) { // Mix: Migrate db if already inited if (!MixService.GetAppSetting <bool>(MixAppSettingKeywords.IsInit)) { using (var ctx = MixService.GetDbContext()) { ctx.Database.Migrate(); var transaction = ctx.Database.BeginTransaction(); var sysDatabasesFile = MixFileRepository.Instance.GetFile("sys_databases", MixFileExtensions.Json, $"{MixFolders.DataFolder}"); var sysDatabases = JObject.Parse(sysDatabasesFile.Content)["data"].ToObject <List <Lib.ViewModels.MixDatabases.ImportViewModel> >(); foreach (var db in sysDatabases) { if (!ctx.MixDatabase.Any(m => m.Name == db.Name)) { db.Id = 0; db.SaveModel(true, ctx, transaction); } } transaction.Commit(); transaction.Dispose(); } using (var cacheCtx = MixCacheService.GetCacheDbContext()) { cacheCtx.Database.Migrate(); } var serviceProvider = services.BuildServiceProvider(); var _roleManager = serviceProvider.GetService <RoleManager <IdentityRole> >(); InitCmsService.InitRolesAsync(_roleManager).GetAwaiter(); } // Mix: Check if require ssl if (MixService.GetAppSetting <bool>("IsHttps")) { services.AddHttpsRedirection(options => { options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect; options.HttpsPort = 443; }); } }
private async Task <RepositoryResponse <bool> > InitCmsAsync(InitCmsViewModel model) { var result = new RepositoryResponse <bool>(); MixService.SetConnectionString(MixConstants.CONST_CMS_CONNECTION, model.ConnectionString); MixService.SetConnectionString(MixConstants.CONST_MESSENGER_CONNECTION, model.ConnectionString); MixService.SetConnectionString(MixConstants.CONST_ACCOUNT_CONNECTION, model.ConnectionString); MixService.SetConfig(MixConstants.CONST_SETTING_IS_SQLITE, model.IsSqlite); MixService.SetConfig(MixConstants.CONST_SETTING_LANGUAGE, model.Culture.Specificulture); InitCmsService sv = new InitCmsService(); var initResult = await sv.InitCms(model.Culture); if (initResult.IsSucceed) { await InitRolesAsync(); result.IsSucceed = true; MixService.LoadFromDatabase(); MixService.SetConfig <bool>("IsInit", true); MixService.SetConfig <string>("DefaultCulture", model.Culture.Specificulture); MixService.Save(); MixService.Reload(); } else { MixService.Reload(); if (initResult.Exception != null) { result.Errors.Add(initResult.Exception.Message); result.Exception = initResult.Exception; } foreach (var item in initResult.Errors) { result.Errors.Add(item); } } return(result); }