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