// http://learn.adobe.com/wiki/display/ADCdocs/Appcasting+RSS #region IUpdateFeedReader Members public IList <IUpdateTask> Read(string feed) { var doc = new XmlDocument(); doc.LoadXml(feed); var nl = doc.SelectNodes("/rss/channel/item"); var ret = new List <IUpdateTask>(); foreach (XmlNode n in nl) { var task = new FileUpdateTask(); task.Description = n["description"].InnerText; task.UpdateTo = n["enclosure"].Attributes["url"].Value; var cnd = new FileVersionCondition(); cnd.Version = n["appcast:version"].InnerText; if (task.UpdateConditions == null) { task.UpdateConditions = new BooleanCondition(); } task.UpdateConditions.AddCondition(cnd, BooleanCondition.ConditionType.AND); ret.Add(task); } return(ret); }
public void ShouldAbortGracefullyOnUnversionedFiles() { var tempFile = Path.GetTempFileName(); File.WriteAllText(tempFile, "foo"); var cnd = new FileVersionCondition { ComparisonType = "is", LocalPath = tempFile, Version = "1.0.0.0" }; Assert.IsTrue(cnd.IsMet(null)); }
// http://learn.adobe.com/wiki/display/ADCdocs/Appcasting+RSS #region IUpdateFeedReader Members public IList <IUpdateTask> Read(string feed) { XmlDocument doc = new XmlDocument(); doc.LoadXml(feed); XmlNodeList nl = doc.SelectNodes("/rss/channel/item"); List <IUpdateTask> ret = new List <IUpdateTask>(); foreach (XmlNode n in nl) { FileUpdateTask task = new FileUpdateTask(); task.Description = n["description"].InnerText; task.Attributes.Add("remotePath", n["enclosure"].Attributes["url"].Value); FileVersionCondition cnd = new FileVersionCondition(); cnd.Attributes.Add("version", n["appcast:version"].InnerText); task.UpdateConditions.AddCondition(cnd, BooleanCondition.ConditionType.AND); ret.Add(task); } return(ret); }