public override void ExpandView(MixCmsContext _context = null, IDbContextTransaction _transaction = null) { this.View = MixTemplates.ReadViewModel.GetTemplateByPath(Template, Specificulture, _context, _transaction).Data; Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JToken item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } var getProductMedia = MixProductMedias.ReadViewModel.Repository.GetModelListBy(n => n.ProductId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getProductMedia.IsSucceed) { MediaNavs = getProductMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } var getRelatedProduct = MixProductProducts.ReadViewModel.Repository.GetModelListBy(n => n.SourceId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getRelatedProduct.IsSucceed) { ProductNavs = getRelatedProduct.Data.OrderBy(p => p.Priority).ToList(); ProductNavs.ForEach(n => n.IsActived = true); } }
private void LoadMedias(MixCmsContext _context, IDbContextTransaction _transaction) { var getPostMedia = MixPostMedias.ReadViewModel.Repository.GetModelListBy(n => n.PostId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getPostMedia.IsSucceed) { MediaNavs = getPostMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } }
public override void ExpandView(SioCmsContext _context = null, IDbContextTransaction _transaction = null) { Cultures = LoadCultures(Specificulture, _context, _transaction); StrNormalPrice = SioCmsHelper.FormatPrice(NormalPrice); StrDealPrice = SioCmsHelper.FormatPrice(DealPrice); StrImportPrice = SioCmsHelper.FormatPrice(ImportPrice); if (!string.IsNullOrEmpty(this.Tags)) { ListTag = JArray.Parse(this.Tags); } Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JToken item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } //Get Templates this.Templates = this.Templates ?? SioTemplates.UpdateViewModel.Repository.GetModelListBy( t => t.Theme.Id == ActivedTheme && t.FolderType == this.TemplateFolderType).Data; View = SioTemplates.UpdateViewModel.GetTemplateByPath(Template, Specificulture, SioEnums.EnumTemplateFolder.Products, _context, _transaction); this.View = View ?? Templates.FirstOrDefault(); if (this.View == null) { this.View = SioTemplates.UpdateViewModel.GetDefault(SioEnums.EnumTemplateFolder.Products, Specificulture); } this.Template = CommonHelper.GetFullPath(new string[] { this.View?.FileFolder , this.View?.FileName }); var getProductMedia = SioProductMedias.ReadViewModel.Repository.GetModelListBy(n => n.ProductId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getProductMedia.IsSucceed) { MediaNavs = getProductMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } ProductNavs = GetRelated(_context, _transaction); }
public override void ExpandView(SiocCmsContext _context = null, IDbContextTransaction _transaction = null) { this.View = InfoTemplateViewModel.GetTemplateByPath(Template, Specificulture, _context, _transaction).Data; var getModulesResult = NavProductModuleViewModel.Repository.GetModelListBy( m => m.ProductId == Id && m.Specificulture == Specificulture , _context, _transaction); Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JObject item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } if (getModulesResult.IsSucceed) { this.Modules = new List <FEModuleViewModel>(); foreach (var item in getModulesResult.Data) { var getModules = FEModuleViewModel.Repository.GetSingleModel( m => m.Id == item.ModuleId && m.Specificulture == item.Specificulture , _context, _transaction); if (getModules.IsSucceed) { this.Modules.Add(getModules.Data); } } } var getProductMedia = NavProductMediaViewModel.Repository.GetModelListBy(n => n.ProductId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getProductMedia.IsSucceed) { MediaNavs = getProductMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } var getRelatedProduct = NavRelatedProductViewModel.Repository.GetModelListBy(n => n.SourceProductId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getRelatedProduct.IsSucceed) { ProductNavs = getRelatedProduct.Data.OrderBy(p => p.Priority).ToList(); ProductNavs.ForEach(n => n.IsActived = true); } }
public override void ExpandView(SioCmsContext _context = null, IDbContextTransaction _transaction = null) { this.View = SioTemplates.ReadViewModel.GetTemplateByPath(Template, Specificulture, _context, _transaction).Data; Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JToken item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } var getArticleMedia = SioArticleMedias.ReadViewModel.Repository.GetModelListBy(n => n.ArticleId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getArticleMedia.IsSucceed) { MediaNavs = getArticleMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } // Modules var getArticleModule = SioArticleModules.ReadViewModel.Repository.GetModelListBy( n => n.ArticleId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getArticleModule.IsSucceed) { ModuleNavs = getArticleModule.Data.OrderBy(p => p.Priority).ToList(); foreach (var item in ModuleNavs) { item.IsActived = true; item.Module.LoadData(articleId: Id, _context: _context, _transaction: _transaction); } } // Related Articles ArticleNavs = SioArticleArticles.ReadViewModel.Repository.GetModelListBy(n => n.SourceId == Id && n.Specificulture == Specificulture, _context, _transaction).Data; }
public override void ExpandView(SiocCmsContext _context = null, IDbContextTransaction _transaction = null) { ListSupportedCulture = GlobalLanguageService.ListSupportedCulture; StrNormalPrice = SWCmsHelper.FormatPrice(NormalPrice); StrDealPrice = SWCmsHelper.FormatPrice(DealPrice); StrImportPrice = SWCmsHelper.FormatPrice(ImportPrice); //if (!string.IsNullOrEmpty(this.Tags)) //{ // ListTag = JArray.Parse(this.Tags); //} Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JObject item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } //Get Templates this.Templates = this.Templates ?? BETemplateViewModel.Repository.GetModelListBy( t => t.Template.Name == ActivedTemplate && t.FolderType == this.TemplateFolderType).Data; if (!string.IsNullOrEmpty(Template)) { this.View = Templates.FirstOrDefault(t => Template.Contains(t.FileName)); } this.View = View ?? Templates.FirstOrDefault(); if (this.View == null) { this.View = new BETemplateViewModel(new SiocTemplate() { Extension = SWCmsConstants.Parameters.TemplateExtension, TemplateId = GlobalConfigurationService.Instance.GetLocalInt(SWCmsConstants.ConfigurationKeyword.ThemeId, Specificulture, 0), TemplateName = ActivedTemplate, FolderType = TemplateFolderType, FileFolder = this.TemplateFolder, FileName = SWCmsConstants.Default.DefaultTemplate, ModifiedBy = ModifiedBy, Content = "<div></div>" }); } this.Template = SWCmsHelper.GetFullPath(new string[] { this.View?.FileFolder , this.View?.FileName }); var getCateProduct = CommonRepository.Instance.GetCategoryProductNav(Id, Specificulture, _context, _transaction); if (getCateProduct.IsSucceed) { this.Categories = getCateProduct.Data; this.Categories.ForEach(c => { c.IsActived = NavCategoryProductViewModel.Repository.CheckIsExists(n => n.CategoryId == c.CategoryId && n.ProductId == Id, _context, _transaction); }); } var getModuleProduct = CommonRepository.Instance.GetModuleProductNav(Id, Specificulture, _context, _transaction); if (getModuleProduct.IsSucceed) { this.Modules = getModuleProduct.Data; } var getProductModule = CommonRepository.Instance.GetProductModuleNav(Id, Specificulture, _context, _transaction); if (getProductModule.IsSucceed) { this.ModuleNavs = getProductModule.Data; } var getProductMedia = NavProductMediaViewModel.Repository.GetModelListBy(n => n.ProductId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getProductMedia.IsSucceed) { MediaNavs = getProductMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } var getRelatedProduct = NavRelatedProductViewModel.Repository.GetModelListBy(n => (n.SourceProductId == Id || n.RelatedProductId == Id) && n.Specificulture == Specificulture, _context, _transaction); if (getRelatedProduct.IsSucceed) { ProductNavs = getRelatedProduct.Data.OrderBy(p => p.Priority).ToList(); ProductNavs.ForEach(n => n.IsActived = true); } this.ListSupportedCulture.ForEach(c => c.IsSupported = (string.IsNullOrEmpty(Id) && c.Specificulture == Specificulture) || Repository.CheckIsExists(a => a.Id == Id && a.Specificulture == c.Specificulture, _context, _transaction) ); this.ActivedModules = new List <BEModuleViewModel>(); foreach (var module in this.ModuleNavs.Where(m => m.IsActived)) { var getModule = BEModuleViewModel.Repository.GetSingleModel(m => m.Id == module.ModuleId && m.Specificulture == module.Specificulture, _context, _transaction); if (getModule.IsSucceed) { this.ActivedModules.Add(getModule.Data); this.ActivedModules.ForEach(m => m.LoadData(Id)); } } }
public override void ExpandView(MixCmsContext _context = null, IDbContextTransaction _transaction = null) { Cultures = LoadCultures(Specificulture, _context, _transaction); if (!string.IsNullOrEmpty(this.Tags)) { ListTag = JArray.Parse(this.Tags); } Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JToken item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } //Get Templates this.Templates = this.Templates ?? MixTemplates.UpdateViewModel.Repository.GetModelListBy( t => t.Theme.Name == ActivedTheme && t.FolderType == this.TemplateFolderType).Data; View = MixTemplates.UpdateViewModel.GetTemplateByPath(Template, Specificulture, MixEnums.EnumTemplateFolder.Articles, _context, _transaction); this.Template = CommonHelper.GetFullPath(new string[] { this.View?.FileFolder , this.View?.FileName }); var getPageArticle = MixPageArticles.ReadViewModel.GetPageArticleNavAsync(Id, Specificulture, _context, _transaction); if (getPageArticle.IsSucceed) { this.Pages = getPageArticle.Data; this.Pages.ForEach(c => { c.IsActived = MixPageArticles.ReadViewModel.Repository.CheckIsExists(n => n.CategoryId == c.CategoryId && n.ArticleId == Id, _context, _transaction); }); } var getModuleArticle = MixModuleArticles.ReadViewModel.GetModuleArticleNavAsync(Id, Specificulture, _context, _transaction); if (getModuleArticle.IsSucceed) { this.Modules = getModuleArticle.Data; this.Modules.ForEach(c => { c.IsActived = MixModuleArticles.ReadViewModel.Repository.CheckIsExists(n => n.ModuleId == c.ModuleId && n.ArticleId == Id, _context, _transaction); }); } var otherModules = MixModules.ReadListItemViewModel.Repository.GetModelListBy( m => (m.Type == (int)MixEnums.MixModuleType.Content || m.Type == (int)MixEnums.MixModuleType.ListArticle) && m.Specificulture == Specificulture && !Modules.Any(n => n.ModuleId == m.Id && n.Specificulture == m.Specificulture) , "CreatedDateTime", 1, null, 0, _context, _transaction); foreach (var item in otherModules.Data.Items) { Modules.Add(new MixModuleArticles.ReadViewModel() { ModuleId = item.Id, Image = item.Image, ArticleId = Id, Description = item.Title }); } // Medias var getArticleMedia = MixArticleMedias.ReadViewModel.Repository.GetModelListBy(n => n.ArticleId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getArticleMedia.IsSucceed) { MediaNavs = getArticleMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } // var otherMedias = MixMedias.UpdateViewModel.Repository.GetModelListBy(m => !MediaNavs.Any(n => n.MediaId == m.Id), "CreatedDateTime", 1, 10, 0, _context, _transaction); // foreach (var item in otherMedias.Data.Items) // { // MediaNavs.Add(new MixArticleMedias.ReadViewModel() // { // MediaId = item.Id, // Image = item.FullPath, // ArticleId = Id, // Description = item.Title // }); // } // Modules var getArticleModule = MixArticleModules.ReadViewModel.Repository.GetModelListBy( n => n.ArticleId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getArticleModule.IsSucceed) { ModuleNavs = getArticleModule.Data.OrderBy(p => p.Priority).ToList(); foreach (var item in ModuleNavs) { item.IsActived = true; item.Module.LoadData(articleId: Id, _context: _context, _transaction: _transaction); } } var otherModuleNavs = MixModules.ReadMvcViewModel.Repository.GetModelListBy( m => (m.Type == (int)MixEnums.MixModuleType.SubArticle) && m.Specificulture == Specificulture && !ModuleNavs.Any(n => n.ModuleId == m.Id), "CreatedDateTime", 1, null, 0, _context, _transaction); foreach (var item in otherModuleNavs.Data.Items) { item.LoadData(articleId: Id, _context: _context, _transaction: _transaction); ModuleNavs.Add(new MixArticleModules.ReadViewModel() { ModuleId = item.Id, Image = item.Image, ArticleId = Id, Description = item.Title, Module = item }); } // Related Articles ArticleNavs = GetRelated(_context, _transaction); var otherArticles = MixArticles.ReadListItemViewModel.Repository.GetModelListBy(m => !ArticleNavs.Any(n => n.SourceId == m.Id), "CreatedDateTime", 1, 10, 0, _context, _transaction); foreach (var item in otherArticles.Data.Items) { ArticleNavs.Add(new MixArticleArticles.ReadViewModel() { SourceId = Id, Image = item.ImageUrl, DestinationId = item.Id, Description = item.Title }); } }
public override void ExpandView(MixCmsContext _context = null, IDbContextTransaction _transaction = null) { if (Id == 0) { ExtraFields = MixService.GetConfig <string>("DefaultPostAttr"); } Cultures = LoadCultures(Specificulture, _context, _transaction); UrlAliases = GetAliases(_context, _transaction); if (!string.IsNullOrEmpty(this.Tags)) { ListTag = JArray.Parse(this.Tags); } // Parsing Extra Properties fields Columns = new List <ModuleFieldViewModel>(); JArray arrField = !string.IsNullOrEmpty(ExtraFields) ? JArray.Parse(ExtraFields) : new JArray(); foreach (var field in arrField) { ModuleFieldViewModel thisField = new ModuleFieldViewModel() { Name = MixCommonHelper.ParseJsonPropertyName(field["name"].ToString()), Title = field["title"]?.ToString(), Options = field["options"] != null ? field["options"].Value <JArray>() : new JArray(), Priority = field["priority"] != null ? field["priority"].Value <int>() : 0, DataType = (MixDataType)(int)field["dataType"], Width = field["width"] != null ? field["width"].Value <int>() : 3, IsUnique = field["isUnique"] != null ? field["isUnique"].Value <bool>() : true, IsRequired = field["isRequired"] != null ? field["isRequired"].Value <bool>() : true, IsDisplay = field["isDisplay"] != null ? field["isDisplay"].Value <bool>() : true, IsSelect = field["isSelect"] != null ? field["isSelect"].Value <bool>() : false, IsGroupBy = field["isGroupBy"] != null ? field["isGroupBy"].Value <bool>() : false, }; Columns.Add(thisField); } // Parsing Extra Properties value Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JToken item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } //Get Templates this.Templates = this.Templates ?? MixTemplates.UpdateViewModel.Repository.GetModelListBy( t => t.Theme.Id == ActivedTheme && t.FolderType == this.TemplateFolderType).Data; View = MixTemplates.UpdateViewModel.GetTemplateByPath(Template, Specificulture, MixTemplateFolders.Posts, _context, _transaction); this.Template = $"{this.View?.FileFolder}/{this.View?.FileName}"; var getPagePost = MixPagePosts.ReadViewModel.GetPagePostNavAsync(Id, Specificulture, _context, _transaction); if (getPagePost.IsSucceed) { this.Pages = getPagePost.Data; this.Pages.ForEach(c => { c.IsActived = MixPagePosts.ReadViewModel.Repository.CheckIsExists(n => n.PageId == c.PageId && n.PostId == Id, _context, _transaction); }); } var getModulePost = MixModulePosts.ReadViewModel.GetModulePostNavAsync(Id, Specificulture, _context, _transaction); if (getModulePost.IsSucceed) { this.Modules = getModulePost.Data; this.Modules.ForEach(c => { c.IsActived = MixModulePosts.ReadViewModel.Repository.CheckIsExists(n => n.ModuleId == c.ModuleId && n.PostId == Id, _context, _transaction); }); } var otherModules = MixModules.ReadListItemViewModel.Repository.GetModelListBy( m => (m.Type == (int)MixModuleType.Content || m.Type == (int)MixModuleType.ListPost) && m.Specificulture == Specificulture && !Modules.Any(n => n.ModuleId == m.Id && n.Specificulture == m.Specificulture) , "CreatedDateTime", Heart.Enums.DisplayDirection.Desc, null, 0, _context, _transaction); foreach (var item in otherModules.Data.Items) { Modules.Add(new MixModulePosts.ReadViewModel() { ModuleId = item.Id, Image = item.Image, PostId = Id, Description = Title }); } // Medias var getPostMedia = MixPostMedias.ReadViewModel.Repository.GetModelListBy(n => n.PostId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getPostMedia.IsSucceed) { MediaNavs = getPostMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } // Modules var getPostModule = MixPostModules.ReadViewModel.Repository.GetModelListBy( n => n.PostId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getPostModule.IsSucceed) { ModuleNavs = getPostModule.Data.OrderBy(p => p.Priority).ToList(); foreach (var item in ModuleNavs) { item.IsActived = true; item.Module.LoadData(postId: Id, _context: _context, _transaction: _transaction); } } // Related Posts PostNavs = GetRelated(_context, _transaction); var otherPosts = MixPosts.ReadListItemViewModel.Repository.GetModelListBy( m => m.Id != Id && m.Specificulture == Specificulture && !PostNavs.Any(n => n.SourceId == Id) , "CreatedDateTime", Heart.Enums.DisplayDirection.Desc, 10, 0, _context, _transaction); foreach (var item in otherPosts.Data.Items) { PostNavs.Add(new MixPostPosts.ReadViewModel() { SourceId = Id, Image = item.ImageUrl, DestinationId = item.Id, Description = item.Title }); } }
public override void ExpandView(SiocCmsContext _context = null, IDbContextTransaction _transaction = null) { Cultures = CommonRepository.Instance.LoadCultures(Specificulture, _context, _transaction); UrlAlias = ApiUrlAliasViewModel.Repository.GetSingleModel(u => u.Specificulture == Specificulture && u.SourceId == Id.ToString() && u.Type == (int)SWCmsConstants.UrlAliasType.Product).Data; if (UrlAlias == null) { UrlAlias = new ApiUrlAliasViewModel() { Specificulture = Specificulture, Type = SWCmsConstants.UrlAliasType.Product, Alias = SeoName }; } StrNormalPrice = SwCmsHelper.FormatPrice(NormalPrice); StrDealPrice = SwCmsHelper.FormatPrice(DealPrice); StrImportPrice = SwCmsHelper.FormatPrice(ImportPrice); if (!string.IsNullOrEmpty(this.Tags)) { ListTag = JArray.Parse(this.Tags); } Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JToken item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } //Get Templates int themeId = GlobalConfigurationService.Instance.GetLocalInt(SWCmsConstants.ConfigurationKeyword.ThemeId, Specificulture, 0); View = ApiTemplateViewModel.GetTemplateByPath(themeId, Template, SWCmsConstants.TemplateFolder.Products, _context, _transaction); this.View = View ?? Templates.FirstOrDefault(); if (this.View == null) { this.View = new ApiTemplateViewModel(new SiocTemplate() { Extension = SWCmsConstants.Parameters.TemplateExtension, TemplateId = GlobalConfigurationService.Instance.GetLocalInt(SWCmsConstants.ConfigurationKeyword.ThemeId, Specificulture, 0), TemplateName = ActivedTemplate, FolderType = TemplateFolderType, FileFolder = this.TemplateFolder, FileName = SWCmsConstants.Default.DefaultTemplate, ModifiedBy = ModifiedBy, Content = "<div></div>" }); } this.Template = SwCmsHelper.GetFullPath(new string[] { this.View?.FileFolder , this.View?.FileName }); var getCateProduct = CommonRepository.Instance.GetCategoryProductNav(Id, Specificulture, _context, _transaction); if (getCateProduct.IsSucceed) { this.Categories = getCateProduct.Data; this.Categories.ForEach(c => { c.IsActived = NavCategoryProductViewModel.Repository.CheckIsExists(n => n.CategoryId == c.CategoryId && n.ProductId == Id, _context, _transaction); }); } var getModuleProduct = CommonRepository.Instance.GetModuleProductNav(Id, Specificulture, _context, _transaction); if (getModuleProduct.IsSucceed) { this.Modules = getModuleProduct.Data; } var getProductModule = CommonRepository.Instance.GetProductModuleNav(Id, Specificulture, _context, _transaction); if (getProductModule.IsSucceed) { this.ModuleNavs = getProductModule.Data; } var getProductMedia = NavProductMediaViewModel.Repository.GetModelListBy(n => n.ProductId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getProductMedia.IsSucceed) { MediaNavs = getProductMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } ProductNavs = GetRelated(_context, _transaction); this.ActivedModules = new List <ApiModuleViewModel>(); foreach (var module in this.ModuleNavs.Where(m => m.IsActived)) { var getModule = ApiModuleViewModel.Repository.GetSingleModel(m => m.Id == module.ModuleId && m.Specificulture == module.Specificulture, _context, _transaction); if (getModule.IsSucceed) { this.ActivedModules.Add(getModule.Data); this.ActivedModules.ForEach(m => m.LoadData(Id)); } } }
public override void ExpandView(SioCmsContext _context = null, IDbContextTransaction _transaction = null) { Cultures = LoadCultures(Specificulture, _context, _transaction); if (!string.IsNullOrEmpty(this.Tags)) { ListTag = JArray.Parse(this.Tags); } Properties = new List <ExtraProperty>(); if (!string.IsNullOrEmpty(ExtraProperties)) { JArray arr = JArray.Parse(ExtraProperties); foreach (JToken item in arr) { Properties.Add(item.ToObject <ExtraProperty>()); } } //Get Templates this.Templates = this.Templates ?? SioTemplates.UpdateViewModel.Repository.GetModelListBy( t => t.Theme.Name == ActivedTheme && t.FolderType == this.TemplateFolderType).Data; View = SioTemplates.UpdateViewModel.GetTemplateByPath(Template, Specificulture, SioEnums.EnumTemplateFolder.Articles, _context, _transaction); this.Template = CommonHelper.GetFullPath(new string[] { this.View?.FileFolder , this.View?.FileName }); var getPageArticle = SioPageArticles.ReadViewModel.GetPageArticleNavAsync(Id, Specificulture, _context, _transaction); if (getPageArticle.IsSucceed) { this.Pages = getPageArticle.Data; this.Pages.ForEach(c => { c.IsActived = SioPageArticles.ReadViewModel.Repository.CheckIsExists(n => n.CategoryId == c.CategoryId && n.ArticleId == Id, _context, _transaction); }); } var getModuleArticle = SioModuleArticles.ReadViewModel.GetModuleArticleNavAsync(Id, Specificulture, _context, _transaction); if (getModuleArticle.IsSucceed) { this.Modules = getModuleArticle.Data; this.Modules.ForEach(c => { c.IsActived = SioModuleArticles.ReadViewModel.Repository.CheckIsExists(n => n.ModuleId == c.ModuleId && n.ArticleId == Id, _context, _transaction); }); } var getArticleMedia = SioArticleMedias.ReadViewModel.Repository.GetModelListBy(n => n.ArticleId == Id && n.Specificulture == Specificulture, _context, _transaction); if (getArticleMedia.IsSucceed) { MediaNavs = getArticleMedia.Data.OrderBy(p => p.Priority).ToList(); MediaNavs.ForEach(n => n.IsActived = true); } ArticleNavs = GetRelated(_context, _transaction); }