예제 #1
0
        private SlideFeed ParseLegacy(string lastGuid)
        {
            var slideFeed = new SlideFeed();

            foreach (XmlNode item in _dom.DocumentElement.ChildNodes)
            {
                string guid = item.SelectSingleNode("guid").InnerText;
                if (guid == lastGuid)
                {
                    break;
                }

                var slideFeedItem = new SlideFeedItem()
                {
                    Guid = item.SelectSingleNode("guid").InnerText
                };
                slideFeedItem.Add(new DateParameter("PublishedDate", item.SelectSingleNode("date").InnerText, "d MMMM yyyy HH:mm"));
                slideFeedItem.Add(new TextParameter("ClickThroughUrl", item.SelectSingleNode("url").InnerText));
                slideFeedItem.Add(new TextParameter("TitleText", item.SelectSingleNode("title").InnerText));
                slideFeedItem.Add(new ImageParameter("MasterImage", item.SelectSingleNode("image").InnerText));
                if (item.SelectSingleNode("credit") != null)
                {
                    slideFeedItem.Add(new TextParameter("ImageCreditText", item.SelectSingleNode("credit").InnerText));
                }
                slideFeed.Items.Add(slideFeedItem);
            }
            return(slideFeed);
        }
예제 #2
0
        private SlideFeedItem GetSlideFeedItem(XmlNode item)
        {
            var slideFeedItem = new SlideFeedItem()
            {
                Guid = item.Attributes["guid"].Value
            };
            var parameterNodes = item.SelectNodes(@"./parameter");

            foreach (XmlNode parameterNode in parameterNodes)
            {
                string parameterData = null;
                string parametername = parameterNode.Attributes["name"].Value;

                //Check if we need to run a script to get the data
                var callScriptNode = parameterNode.SelectSingleNode(@"./call-script");
                if (callScriptNode != null)
                {
                    var paramObjects = new List <object>();

                    var paramList = callScriptNode.SelectNodes("./wih-param");
                    foreach (XmlNode paramnode in paramList)
                    {
                        paramObjects.Add(paramnode.InnerText.Trim());
                    }
                    string functionName = callScriptNode.Attributes["name"].Value;

                    parameterData = RunScript(_dom.SelectSingleNode(@"slidefeed/script").InnerText, functionName, paramObjects.ToArray());
                    if (parameterData == null)
                    {
                        return(null);
                    }
                }
                else
                {
                    parameterData = parameterNode.InnerText.Trim();
                }
                Parameter parameter = null;


                switch (parameterNode.Attributes["type"].Value)
                {
                case "text":
                    parameter = new TextParameter(parametername, parameterData);
                    break;

                case "date":
                    parameter = new DateParameter(parametername, parameterData, parameterNode.Attributes["format"].Value);
                    break;

                case "image":
                    parameter = new ImageParameter(parametername, parameterData);
                    break;
                }

                slideFeedItem.Add(parameter);
            }
            return(slideFeedItem);
        }