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); }
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); }