public void MarkItemListened(PodcastItem pItem) { var xdoc = Form1.Manager.GetSubsDocument(); var pNode = (from sub in xdoc.Descendants("sub") where sub.Attribute("title").Value == PodcastName select sub).FirstOrDefault(); var check = (from item in pNode.Descendants("item") where item.Attribute("title").Value == pItem.ItemTitle select item).Count(); if (check < 1) { XElement node = new XElement("item", new XAttribute("title", pItem.ItemTitle), new XAttribute("url", pItem.ItemUrl), new XAttribute("pubDate", pItem.ItemPubDate)); pNode.Add(node); } pItem.Listened = true; xdoc.Save("subs.xml"); }
public void ReadAllItems() { if (SubXDoc == null) { LoadSubXML(); } ListenedList.Clear(); var items = from item in SubXDoc.Descendants("item") select item; foreach (XElement item in items) { PodcastItem newItem = new PodcastItem(item); XDocument xdoc = Form1.Manager.GetSubsDocument(); var listened = from ii in xdoc.Descendants("item") where ii.Parent.Attribute("title").Value == PodcastName && ii.Attribute("title").Value == newItem.ItemTitle && ii.Attribute("url").Value == newItem.ItemUrl select ii; if (listened.Any()) { newItem.Listened = true; } ListenedList.Add(newItem); } PodcastItemsLoaded = true; }
public void UpdateSub() { if (SubXDoc == null) { LoadSubXML(); } string mostRecentPubDate = SubXDoc.Element("root").Element("channel").Element("item").Element("pubDate").Value; if (ListenedList.Count > 0) { if (mostRecentPubDate != ListenedList[0].ItemPubDate) { var newItem2 = ( from item in SubXDoc.Descendants("item") where DateTime.Compare(convertDateTime(item.Element("pubDate").Value), convertDateTime(ListenedList[0].ItemPubDate)) > 0 orderby (DateTime)convertDateTime(item.Element("pubDate").Value) select item ); foreach (XElement pitem in newItem2) { PodcastItem newItem = new PodcastItem(pitem); ListenedList.Insert(0, newItem); } } } }