Beispiel #1
0
        // Metod används för att uppdatera listViewDetails. Om källan till uppdateringen är annorlunda mot den nuvarande så refreshas listan. Bakgrunden till refreshen är att man vill ha aktuella värden på t.ex played om en fil spelats.
        private void updateFeed(string chosenFile, string fileStamp)
        {
            List <string> played = new List <string>();

            played = HanteraRss.getPlayed(@"savedFeeds/" + fileStamp + ".xml");
            //körs om den inte är tom, detta är för att GetItemAt nedanför inte ska vara null och ge error.
            if ((listViewDetails.Items.IsEmpty) == false)
            {
                //körs om den har en en annorlunda stamp
                if ((listViewDetails.Items.GetItemAt(0) as ListItems).Stamp != fileStamp)
                {
                    fillFeedList(chosenFile, fileStamp, played);
                }
            }
            // körs den är tom
            else if (listViewDetails.Items.Count == 0)
            {
                fillFeedList(chosenFile, fileStamp, played);
            }

            // denna kommer gå igenom om listan inte är tom och Stamp är lika. Det betyder att listan bara behöver uppdateras.
            // tex om en låt är spelad och behöver få sin nya färg.
            else
            {
                listViewDetails.Items.Clear();

                foreach (var i in items)
                {
                    foreach (var x in played)
                    {
                        if (i.Title == x)
                        {
                            i.Played = true;
                        }
                    }

                    this.listViewDetails.Items.Add(i);
                }
            }
        }
Beispiel #2
0
        // Metod som anropas när ett objekt har spelats, och markerar det som "spelat".
        private void setPlayed(string chosenFile, string fileStamp)
        {
            List <string> playlist = new List <string>();

            playlist = HanteraRss.getPlayed(@"savedFeeds/" + fileStamp + ".xml");
            try
            {
                listViewDetails.Items.Clear();
                xDoc = XDocument.Load(chosenFile);
                var newItems = (from x in xDoc.Descendants("item")
                                select new
                {
                    title = x.Element("title").Value,
                    pubDate = x.Element("pubDate").Value,
                    url = (string)x.Element("enclosure").Attribute("url").Value,
                });

                if (newItems != null)
                {
                    listViewDetails.Items.Clear();
                    foreach (var i in newItems)
                    {
                        bool played = false;
                        if (HanteraRss.checkPlayedExist(playlist, i.title))
                        {
                            played = true;
                        }
                        this.listViewDetails.Items.Add(new FeedItems {
                            Title = i.title, Date = i.pubDate, URL = i.url, Stamp = fileStamp, Played = played
                        });
                    }
                }
            }

            catch (System.Net.WebException)
            {
                MessageBox.Show("URL fungerade ej");
            }
        }