Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        // 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);
        }