本文整理汇总了C#中umbraco.cms.businesslogic.web.Document.XmlRemoveFromDB方法的典型用法代码示例。如果您正苦于以下问题:C# Document.XmlRemoveFromDB方法的具体用法?C# Document.XmlRemoveFromDB怎么用?C# Document.XmlRemoveFromDB使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类umbraco.cms.businesslogic.web.Document
的用法示例。
在下文中一共展示了Document.XmlRemoveFromDB方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ClearDocumentCache
/// <summary>
/// Clears the document cache and removes the document from the xml db cache.
/// This means the node gets unpublished from the website.
/// </summary>
/// <param name="documentId">The document id.</param>
public virtual void ClearDocumentCache(int documentId)
{
// Get the document
var d = new Document(documentId);
var e = new DocumentCacheEventArgs();
FireBeforeClearDocumentCache(d, e);
if (!e.Cancel)
{
XmlNode x;
// remove from xml db cache
d.XmlRemoveFromDB();
// Check if node present, before cloning
x = XmlContentInternal.GetElementById(d.Id.ToString());
if (x == null)
return;
// We need to lock content cache here, because we cannot allow other threads
// making changes at the same time, they need to be queued
lock (_xmlContentInternalSyncLock)
{
// Make copy of memory content, we cannot make changes to the same document
// the is read from elsewhere
XmlDocument xmlContentCopy = CloneXmlDoc(XmlContentInternal);
// Find the document in the xml cache
x = xmlContentCopy.GetElementById(d.Id.ToString());
if (x != null)
{
// The document already exists in cache, so repopulate it
x.ParentNode.RemoveChild(x);
XmlContentInternal = xmlContentCopy;
ClearContextCache();
}
}
if (x != null)
{
// Run Handler
Action.RunActionHandlers(d, ActionUnPublish.Instance);
}
// update sitemapprovider
if (SiteMap.Provider is UmbracoSiteMapProvider)
{
var prov = (UmbracoSiteMapProvider)SiteMap.Provider;
prov.RemoveNode(d.Id);
}
FireAfterClearDocumentCache(d, e);
}
}