protected static void InitPages(string culture, MixCmsContext context, IDbContextTransaction transaction) { V_0 = JObject.Parse(FileRepository.get_Instance().GetFile("pages.json", "data", true, "{}").get_Content()).get_Item("data").ToObject <List <MixPage> >().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = V_0.get_Current(); V_1.set_Specificulture(culture); V_1.set_SeoTitle(V_1.get_Title().ToLower()); V_1.set_SeoName(SeoHelper.GetSEOString(V_1.get_Title(), '-')); V_1.set_SeoDescription(V_1.get_Title().ToLower()); V_1.set_SeoKeywords(V_1.get_Title().ToLower()); V_1.set_CreatedDateTime(DateTime.get_UtcNow()); V_1.set_CreatedBy("SuperAdmin"); context.Entry <MixPage>(V_1).set_State(4); stackVariable43 = new MixUrlAlias(); stackVariable43.set_Id(V_1.get_Id()); stackVariable43.set_SourceId(V_1.get_Id().ToString()); stackVariable43.set_Type(0); stackVariable43.set_Specificulture(culture); stackVariable43.set_CreatedDateTime(DateTime.get_UtcNow()); stackVariable43.set_Alias(V_1.get_Title().ToLower()); stackVariable43.set_Status(2.ToString()); context.Entry <MixUrlAlias>(stackVariable43).set_State(4); } } finally { ((IDisposable)V_0).Dispose(); } return; }
protected static void InitPages(string culture, MixCmsContext context, IDbContextTransaction transaction) { /* Init Languages */ var pages = FileRepository.Instance.GetFile(MixConstants.CONST_FILE_PAGES, "data", true, "{}"); var obj = JObject.Parse(pages.Content); var arrPage = obj["data"].ToObject <List <MixPage> >(); foreach (var page in arrPage) { page.Specificulture = culture; page.SeoTitle = page.Title.ToLower(); page.SeoName = SeoHelper.GetSEOString(page.Title); page.SeoDescription = page.Title.ToLower(); page.SeoKeywords = page.Title.ToLower(); page.CreatedDateTime = DateTime.UtcNow; page.CreatedBy = "SuperAdmin"; context.Entry(page).State = EntityState.Added; var alias = new MixUrlAlias() { Id = page.Id, SourceId = page.Id.ToString(), Type = (int)UrlAliasType.Page, Specificulture = culture, CreatedDateTime = DateTime.UtcNow, Alias = page.Title.ToLower(), Status = (int)MixContentStatus.Published }; context.Entry(alias).State = EntityState.Added; } }
public async Task <RepositoryResponse <bool> > InitCms(string siteName, InitCulture culture) { RepositoryResponse <bool> result = new RepositoryResponse <bool>(); MixCmsContext context = null; MixCmsAccountContext accountContext = null; MixChatServiceContext messengerContext; IDbContextTransaction transaction = null; IDbContextTransaction accTransaction = null; bool isSucceed = true; try { if (!string.IsNullOrEmpty(MixService.GetConnectionString(MixConstants.CONST_CMS_CONNECTION))) { context = new MixCmsContext(); accountContext = new MixCmsAccountContext(); messengerContext = new MixChatServiceContext(); //MixChatServiceContext._cnn = MixService.GetConnectionString(MixConstants.CONST_CMS_CONNECTION); await context.Database.MigrateAsync(); await accountContext.Database.MigrateAsync(); await messengerContext.Database.MigrateAsync(); transaction = context.Database.BeginTransaction(); var countCulture = context.MixCulture.Count(); var isInit = countCulture > 0; if (!isInit) { MixService.SetConfig <string>("SiteName", siteName); isSucceed = InitCultures(culture, context, transaction); isSucceed = isSucceed && InitPositions(context, transaction); isSucceed = isSucceed && await InitConfigurationsAsync(siteName, culture, context, transaction); isSucceed = isSucceed && await InitLanguagesAsync(culture, context, transaction); isSucceed = isSucceed && InitThemes(siteName, context, transaction); } else { isSucceed = true; } if (isSucceed && context.MixPage.Count() == 0) { var cate = new MixPage() { Id = 1, Level = 0, Title = "Home", Specificulture = culture.Specificulture, Template = "Pages/_Home.cshtml", Type = (int)MixPageType.Home, CreatedBy = "Admin", CreatedDateTime = DateTime.UtcNow, Status = (int)PageStatus.Published }; context.Entry(cate).State = EntityState.Added; var alias = new MixUrlAlias() { Id = 1, SourceId = "1", Type = (int)UrlAliasType.Page, Specificulture = culture.Specificulture, CreatedDateTime = DateTime.UtcNow, Alias = cate.Title.ToLower() }; context.Entry(alias).State = EntityState.Added; var createVNHome = await context.SaveChangesAsync().ConfigureAwait(false); isSucceed = createVNHome > 0; var cate404 = new MixPage() { Id = 2, Title = "404", Level = 0, Specificulture = culture.Specificulture, Template = "Pages/_404.cshtml", Type = (int)MixPageType.Article, CreatedBy = "Admin", CreatedDateTime = DateTime.UtcNow, Status = (int)PageStatus.Published }; var alias404 = new MixUrlAlias() { Id = 2, SourceId = "2", Type = (int)UrlAliasType.Page, Specificulture = culture.Specificulture, CreatedDateTime = DateTime.UtcNow, Alias = cate404.Title.ToLower() }; context.Entry(cate404).State = EntityState.Added; context.Entry(alias404).State = EntityState.Added; var create404 = await context.SaveChangesAsync().ConfigureAwait(false); isSucceed = create404 > 0; } if (isSucceed) { transaction.Commit(); } else { transaction.Rollback(); } } result.IsSucceed = isSucceed; return(result); } catch (Exception ex) // TODO: Add more specific exeption types instead of Exception only { transaction?.Rollback(); accTransaction?.Rollback(); result.IsSucceed = false; result.Exception = ex; return(result); } finally { context?.Dispose(); accountContext?.Dispose(); } }