예제 #1
0
파일: UrlPicker.cs 프로젝트: jayvin/Courier
        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
        }
예제 #2
0
파일: Damp.cs 프로젝트: jayvin/Courier
        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);
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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);
                }
            }
        }
예제 #5
0
        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);
                }
            }
        }
예제 #6
0
파일: UrlPicker.cs 프로젝트: jayvin/Courier
        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);
                        }
                    }
                }

            }
        }
예제 #7
0
        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);
                    }
                }
            }
        }
예제 #8
0
        /// <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);
                }
            }
        }
예제 #9
0
 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);
 }