public static List <EmbeddedContentViewModel> GetEmbedContents(SiteDb sitedb, Guid folderId, Guid textContentId, string language = null) { List <EmbeddedContentViewModel> embedded = new List <EmbeddedContentViewModel>(); var folder = sitedb.ContentFolders.Get(folderId); if (folder == null || (folder.Embedded == null || folder.Embedded.Count() == 0)) { return(embedded); } TextContent content = sitedb.TextContent.Get(textContentId); if (content == null) { content = new TextContent(); } foreach (var item in folder.Embedded) { var embeddedFolder = sitedb.ContentFolders.Get(item.FolderId); List <Guid> ids = new List <Guid>(); if (content.Embedded.ContainsKey(item.FolderId)) { var currentids = content.Embedded[item.FolderId]; if (currentids != null && currentids.Count > 0) { ids = currentids; } } EmbeddedContentViewModel model = new EmbeddedContentViewModel(); model.EmbeddedFolder = embeddedFolder; var contents = sitedb.TextContent.Query. Where(it => it.FolderId == item.FolderId) .WhereIn("Id", ids) .SelectAll(); // also display use the parent ids. if (textContentId != default(Guid)) { var subcontents = sitedb.TextContent.Query.Where(o => o.FolderId == item.FolderId && o.ParentId == textContentId).SelectAll(); foreach (var subitem in subcontents) { if (contents.Find(o => o.Id == subitem.Id) == null) { contents.Add(subitem); } } } model.Contents = contents.Select(o => ToView(o, language, sitedb.ContentTypes.GetPropertiesByFolder(item.FolderId))).ToList(); model.Alias = item.Alias; embedded.Add(model); } return(embedded); }
private static void CleanNonSummaryFields(SiteDb sitedb, EmbeddedContentViewModel model, Guid FolderId) { var summaryfield = sitedb.ContentTypes.GetTitlePropertyByFolder(FolderId); if (summaryfield != null && summaryfield.Any()) { foreach (var item in model.Contents) { List <string> keysToRemove = new List <string>(); foreach (var value in item.TextValues) { var find = summaryfield.Find(o => o.Name == value.Key); if (find == null) { keysToRemove.Add(value.Key); } } foreach (var key in keysToRemove) { item.TextValues.Remove(key); } } } }