public override void ExtractingProperty(Core.Item item, ItemProviders.ContentProperty propertyData) { //convert any node guids back to node Ids propertyData.Value = Umbraco.Courier.Core.Helpers.XmlDependencies.ReplaceIds(propertyData.Value.ToString(), dataXpath, Core.Enums.IdentifierReplaceDirection.FromGuidToNodeId); //register any uploaded media }
public override void PackagingProperty(Core.Item item, ItemProviders.ContentProperty propertyData) { if (propertyData != null && item != null && propertyData.Value != null) { List <string> idsFound = new List <string>(); propertyData.Value = XmlDependencies.ReplaceIds(propertyData.Value.ToString(), "//* [@propertyid != '']", Core.Enums.IdentifierReplaceDirection.FromNodeIdToGuid, out idsFound); Logging._Debug(idsFound.Count + " Embedded content ids found"); //we find and replace ids foreach (var id in idsFound) { Guid g = Guid.Empty; //we have to it this way, as there is no indication in the data whether the ID is media or document if (Guid.TryParse(id, out g)) { //is it content? if (PersistenceManager.Default.GetNodeId(g, NodeObjectTypes.Document) != 0) { item.Dependencies.Add(id, ProviderIDCollection.documentItemProviderGuid); } else if (PersistenceManager.Default.GetNodeId(g, NodeObjectTypes.Media) != 0) { item.Dependencies.Add(id, ProviderIDCollection.mediaItemProviderGuid); } } } } }
public override void PackagingProperty(Core.Item item, ItemProviders.ContentProperty propertyData) { List <string> replacedIds = new List <string>(); propertyData.Value = Umbraco.Courier.Core.Helpers.XmlDependencies.ReplaceIds(propertyData.Value.ToString(), dataXpath, Core.Enums.IdentifierReplaceDirection.FromNodeIdToGuid, out replacedIds); //these are the IDs we found in the picker, those documents are a dependency foreach (string guid in replacedIds) { if (!string.IsNullOrEmpty(guid.Trim())) { item.Dependencies.Add(guid, Courier.ItemProviders.ProviderIDCollection.documentItemProviderGuid); } } }
public override void PackagingProperty(Core.Item item, ItemProviders.ContentProperty propertyData) { //first we need to get the mode of the picker XmlDocument doc = Umbraco.Courier.Core.Helpers.XmlDependencies.LoadXml(propertyData.Value.ToString()); if (doc != null) { XmlNode node = doc.SelectSingleNode("/url-picker"); Umbraco.Courier.Core.Helpers.Logging._Debug("loading node"); if (node != null && node.Attributes["mode"] != null) { string mode = node.Attributes["mode"].Value.ToLower(); Umbraco.Courier.Core.Helpers.Logging._Debug("node mode:" + mode); if (mode == "upload") { foreach (var resource in Umbraco.Courier.Core.Helpers.XmlDependencies.FindResources(propertyData.Value.ToString(), resourceXpath, null)) { item.Resources.Add(resource); } } if (mode == "content" || mode == "media") { var provider = Courier.ItemProviders.ProviderIDCollection.documentItemProviderGuid; if (mode == "media") { provider = Courier.ItemProviders.ProviderIDCollection.mediaItemProviderGuid; } List <string> replacedIds = new List <string>(); propertyData.Value = Umbraco.Courier.Core.Helpers.XmlDependencies.ReplaceIds(propertyData.Value.ToString(), dataXpath, Core.Enums.IdentifierReplaceDirection.FromNodeIdToGuid, out replacedIds); foreach (string guid in replacedIds) { if (!string.IsNullOrEmpty(guid.Trim())) { item.Dependencies.Add(guid, provider); } } } } } }
public override void ExtractingProperty(Core.Item item, ItemProviders.ContentProperty propertyData) { propertyData.Value = Umbraco.Courier.Core.Helpers.XmlDependencies.ReplaceIds(propertyData.Value.ToString(), dataXpath, Core.Enums.IdentifierReplaceDirection.FromGuidToNodeId); }