public void PrepareDocument(User user, Document documentObject, bool includeSubs) { if (IsSinglePreview) { return; } _userId = user.Id; // clone xml XmlContent = (XmlDocument)content.Instance.XmlContent.Clone(); var previewNodes = new List <Document>(); var parentId = documentObject.Level == 1 ? -1 : documentObject.ParentId; while (parentId > 0 && XmlContent.GetElementById(parentId.ToString(CultureInfo.InvariantCulture)) == null) { var document = new Document(parentId); previewNodes.Insert(0, document); parentId = document.ParentId; } previewNodes.Add(documentObject); foreach (var document in previewNodes) { //Inject preview xml parentId = document.Level == 1 ? -1 : document.ParentId; var previewXml = document.ToPreviewXml(XmlContent); if (document.ContentEntity.Published == false && ApplicationContext.Current.Services.ContentService.HasPublishedVersion(document.Id)) { previewXml.Attributes.Append(XmlContent.CreateAttribute("isDraft")); } XmlContent = content.GetAddOrUpdateXmlNode(XmlContent, document.Id, document.Level, parentId, previewXml); } if (includeSubs) { foreach (var prevNode in documentObject.GetNodesForPreview(true)) { var previewXml = XmlContent.ReadNode(XmlReader.Create(new StringReader(prevNode.Xml))); if (prevNode.IsDraft) { previewXml.Attributes.Append(XmlContent.CreateAttribute("isDraft")); } XmlContent = content.GetAddOrUpdateXmlNode(XmlContent, prevNode.NodeId, prevNode.Level, prevNode.ParentId, previewXml); } } }
public void PrepareDocument(User user, Document documentObject, bool includeSubs) { _userId = user.Id; // clone xml XmlContent = (XmlDocument)content.Instance.XmlContent.Clone(); // inject current document xml int parentId = documentObject.Level == 1 ? -1 : documentObject.Parent.Id; XmlContent = content.AppendDocumentXml(documentObject.Id, documentObject.Level, parentId, documentObject.ToPreviewXml(XmlContent), XmlContent); if (includeSubs) { foreach (CMSPreviewNode prevNode in documentObject.GetNodesForPreview(true)) { XmlContent = content.AppendDocumentXml(prevNode.NodeId, prevNode.Level, prevNode.ParentId, XmlContent.ReadNode(XmlReader.Create(new StringReader(prevNode.Xml))), XmlContent); } } }
public void PrepareDocument(User user, Document documentObject, bool includeSubs) { _userId = user.Id; // clone xml XmlContent = (XmlDocument)content.Instance.XmlContent.Clone(); var previewNodes = new List <Document>(); var parentId = documentObject.Level == 1 ? -1 : documentObject.Parent.Id; while (parentId > 0 && XmlContent.GetElementById(parentId.ToString(CultureInfo.InvariantCulture)) == null) { var document = new Document(parentId); previewNodes.Insert(0, document); parentId = document.ParentId; } previewNodes.Add(documentObject); foreach (var document in previewNodes) { //Inject preview xml parentId = document.Level == 1 ? -1 : document.Parent.Id; var previewXml = document.ToPreviewXml(XmlContent); content.AppendDocumentXml(document.Id, document.Level, parentId, previewXml, XmlContent); } if (includeSubs) { foreach (var prevNode in documentObject.GetNodesForPreview(true)) { XmlContent = content.AppendDocumentXml(prevNode.NodeId, prevNode.Level, prevNode.ParentId, XmlContent.ReadNode(XmlReader.Create(new StringReader(prevNode.Xml))), XmlContent); } } }