/// <summary> /// Check the Publishing queue and determine whether the given TcmUri is already present in the queue. /// </summary> /// <param name="engine">Engine object</param> /// <param name="tcmUri">String representing the tcmuri of the item to check</param> /// <param name="state">PublishTransactionState the publish state to filter on</param> public static bool IsInPublishingQueue(Engine engine, String tcmUri, PublishTransactionState state) { Log.Debug(String.Format("Check Publishing queue for item '{0}'", tcmUri)); Session session = engine.GetSession(); PublishTransactionsFilter filter = new PublishTransactionsFilter(session); filter.PublishTransactionState = state; RepositoryLocalObject item = engine.GetObject(tcmUri) as RepositoryLocalObject; if (item != null) filter.ForRepository = item.ContextRepository; PublicationTarget publicationTarget = engine.PublishingContext.PublicationTarget; if (publicationTarget != null) { filter.PublicationTarget = publicationTarget; } XmlElement element = PublishEngine.GetListPublishTransactions(filter); XmlNamespaceManager namespaceManager = new XmlNamespaceManager(new NameTable()); namespaceManager.AddNamespace("tcm", "http://www.tridion.com/ContentManager/5.0"); String xPath = String.Format("tcm:ListPublishTransactions/tcm:Item[@ItemID='{0}']", tcmUri); XmlNodeList nodeList = element.SelectNodes(xPath, namespaceManager); return nodeList.Count > 0; }
/// <summary> /// Check the Publishing queue and determine whether the given TcmUri is already present in the queue. /// </summary> /// <param name="engine">Engine object</param> /// <param name="tcmUri">String representing the tcmuri of the item to check</param> /// <param name="state">PublishTransactionState the publish state to filter on</param> public static bool IsInPublishingQueue(Engine engine, String tcmUri, PublishTransactionState state) { Log.Debug(String.Format("Check Publishing queue for item '{0}'", tcmUri)); Session session = engine.GetSession(); PublishTransactionsFilter filter = new PublishTransactionsFilter(session); filter.PublishTransactionState = state; RepositoryLocalObject item = engine.GetObject(tcmUri) as RepositoryLocalObject; if (item != null) { filter.ForRepository = item.ContextRepository; } PublicationTarget publicationTarget = engine.PublishingContext.PublicationTarget; if (publicationTarget != null) { filter.PublicationTarget = publicationTarget; } XmlElement element = PublishEngine.GetListPublishTransactions(filter); XmlNamespaceManager namespaceManager = new XmlNamespaceManager(new NameTable()); namespaceManager.AddNamespace("tcm", "http://www.tridion.com/ContentManager/5.0"); String xPath = String.Format("tcm:ListPublishTransactions/tcm:Item[@ItemID='{0}']", tcmUri); XmlNodeList nodeList = element.SelectNodes(xPath, namespaceManager); return(nodeList.Count > 0); }