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 ExtractingDataType(ItemProviders.DataType item) { var source = item.Prevalues.Where(x => x.SortOrder == 2).FirstOrDefault(); var defaultType = item.Prevalues.Where(x => x.SortOrder == 13).FirstOrDefault(); List<string> foundNodes = new List<string>(); if (source != null && source.Value != null) source.Value = Dependencies.ConvertIdentifierCollection(source.Value.ToString(), out foundNodes); if (defaultType != null && defaultType.Value != null) defaultType.Value = Dependencies.ConvertIdentifierCollection(defaultType.Value.ToString(), out foundNodes); }
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 PackagingDataType(ItemProviders.DataType item) { //we go through the settings and save references to images stored in the datatype foreach (var setting in item.Prevalues.Where(x => !string.IsNullOrEmpty(x.Value) && x.Value.Contains("|") )) { var currentSetting = setting.Value.Split('|'); if (currentSetting.Length > 1) { var alias = currentSetting[0]; var file = currentSetting[1]; item.Resources.Add(file); } } }
public override void PackagingDataType(ItemProviders.DataType item) { if (item.Prevalues.Count > 0 && !string.IsNullOrEmpty(item.Prevalues[0].Value)) { var vals = item.Prevalues[0].Value.Split('|'); var nodeGuid = Dependencies.ConvertIdentifier(vals[1], Core.Enums.IdentifierReplaceDirection.FromNodeIdToGuid); Guid g = Guid.Empty; if (Guid.TryParse(nodeGuid, out g)) { item.Dependencies.Add(nodeGuid, ProviderIDCollection.documentItemProviderGuid); vals[1] = nodeGuid; item.Prevalues[0].Value = string.Join("|", vals); } } }
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 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); } } } }
/// <summary> /// Configures when facial expressions are used /// </summary> /// <param name="item"></param> public void SetFacialExpression(CommItem item) { #region Get Fact Manager PureFacts pfManager = (PureFacts)ItemProviders.SingleOrDefault(x => x is PureFacts); if (pfManager == null) { SharedHelper.LogError("No manager in Facts Manager in SetFacialExpression for model " + this.Name); return; } #endregion //PureFacts and Jokes will facial expression set at this stage or by Dynamic Function //it updates the facial expression, if it is empty if (!string.IsNullOrEmpty(item.FacialExpression)) { KorraModelHelper.SetFacialExpressionFlag(item.FacialExpression); } else //here in most cases we default to smile { if (item.IsReactionToUser) //default to smile on reaction { KorraModelHelper.SetFacialExpressionFlag(FaceExp.SmileAfterTalking); } else //Handle PureFacts AboutBot if (item.IsPureFact && !item.IsJokePureFact) { PureFact fact = (PureFact)pfManager.GetByName(item.Name); if (fact != null && fact.Type == PureFactType.AboutBot) { KorraModelHelper.SetFacialExpressionFlag(FaceExp.SmileAfterTalking); } } else if (item.Category == ActionsEnum.ChangeVisualAppearance) { KorraModelHelper.SetFacialExpressionFlag(FaceExp.SmileAfterTalking); } else if (item.Category == ActionsEnum.ConvinceBuyStatement) { KorraModelHelper.SetFacialExpressionFlag(FaceExp.SmileAfterTalking); } else if (item.Category == ActionsEnum.ExpressMentalState) { KorraModelHelper.SetFacialExpressionFlag(FaceExp.SmileAfterTalking); } else //Hnadle Jokes (Normal or PureFacts) if (item.SubCategory == SuggestionsEnum.TellJoke && !item.IsJokePureFact) { if (!item.IsJokePureFact) //Normal joke { Joke joke = JokesProvider.GetJokeByName(item.Name); if (joke != null && !string.IsNullOrEmpty(joke.FaceExpression)) //check for custom facial expression { KorraModelHelper.SetFacialExpressionFlag(joke.FaceExpression); } else { KorraModelHelper.SetFacialExpressionFlag(FaceExp.SmileAfterTalking); //default to smile } } else //PureFact joke that had no facial expression set { KorraModelHelper.SetFacialExpressionFlag(FaceExp.SmileAfterTalking); //default to smile } } else if (item.SubCategory == SuggestionsEnum.ListenToSong || item.SubCategory == SuggestionsEnum.DoSport || item.SubCategory == SuggestionsEnum.WatchMovie || item.SubCategory == SuggestionsEnum.GoOut) { KorraModelHelper.SetFacialExpressionFlag(FaceExp.SmileAfterTalking); } } }
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); }