/// <summary> /// Tar bort ett feedbibliotek, stänger ner det tillhörande timer-objektet. /// Lägger till ett exakt likadant feedbibliotek i en kategorilista och startar ett nytt timer-objekt. /// </summary> /// <param name="kategori"></param> /// <param name="podcast"></param> /// <param name="nyKategori"></param> /// <param name="samlingsBibliotek"></param> public void BytKategori(ComboBox kategori, ComboBox podcast, ComboBox nyKategori, SamlingsBibliotek samlingsBibliotek) { try { int index = kategori.SelectedIndex; int podcastIndex = podcast.SelectedIndex; KategoriBibliotek bibliotekAvFeeds = samlingsBibliotek.SamlingsLista[index]; FeedBibliotek feedBibliotek = bibliotekAvFeeds.KategoriLista[podcastIndex]; for (int i = 0; i < TimerBibliotek.Antal; i++) { if (TimerBibliotek.Timer[i].TimerID == feedBibliotek.FeedBibliotekTitel) { TimerBibliotek.Timer[i].timer.Close(); } } string url = feedBibliotek.RSSUrl; TimerInitializer timer = new TimerInitializer(reader, url, samlingsBibliotek); timer.TimerID = feedBibliotek.FeedBibliotekTitel; timer.Start(feedBibliotek.UppdateringsIntervall); TimerBibliotek.LäggTillTimer(timer); LäggTillFeedBibliotekTillKategoriLista(nyKategori, feedBibliotek, samlingsBibliotek); TaBortPodcast(kategori, podcast, samlingsBibliotek); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Loopar igenom angett samlingsbibliotek och kategoribibliotek och /// kollar om det finns några feedbibliotek i eventuella kategoribibliotek. Om det finns några feedbibliotek /// så instansieras nya timer-objekt baserat på dessa feedbiblioteks angivna uppdateringsintervall. /// </summary> /// <param name="inSamlingsBibliotek"></param> public void InstansieraTimers(SamlingsBibliotek inSamlingsBibliotek) { SamlingsBibliotek samlingsBibliotek = inSamlingsBibliotek; for (int i = 0; i < samlingsBibliotek.Antal; i++) { for (int j = 0; j < samlingsBibliotek.SamlingsLista.Count; j++) { if (samlingsBibliotek.SamlingsLista[i].Antal != 0 && j < samlingsBibliotek.SamlingsLista[i].Antal) { TimerInitializer nyTimer = new TimerInitializer(this, samlingsBibliotek.SamlingsLista[i].KategoriLista[j].RSSUrl, samlingsBibliotek); int tid; tid = samlingsBibliotek.SamlingsLista[i].KategoriLista[j].UppdateringsIntervall; nyTimer.Start(tid); TimerBibliotek.LäggTillTimer(nyTimer); } } } }
/// <summary> /// Skapar ett feedbibliotek, laddar ner tillhörande mp3-filer, sätter titeln på feedbiblioteket, /// lägger till feedbiblioteket i vald kategorilista, initialiserar ett nytt timer-objekt /// och lägger till det i timerbiblioteket. /// </summary> /// <param name="inUrl"></param> /// <param name="kategori"></param> /// <param name="intervall"></param> /// <param name="samlingsBibliotek"></param> public void SkapaPrenumeration(TextBox inUrl, ComboBox kategori, ComboBox intervall, SamlingsBibliotek samlingsBibliotek) { string nyUrl = inUrl.Text; FeedBibliotek bibliotek = SkapaFeed(intervall, nyUrl); PodcastNerladdning(nyUrl); InstansieraPodcastTitel(nyUrl, bibliotek, samlingsBibliotek); bibliotekHanterare.LäggTillFeedBibliotekTillKategoriLista(kategori, bibliotek, samlingsBibliotek); TimerInitializer timer = new TimerInitializer(this, nyUrl, samlingsBibliotek); timer.TimerID = bibliotek.FeedBibliotekTitel; timer.Start(bibliotek.UppdateringsIntervall); TimerBibliotek.LäggTillTimer(timer); senasteTillagdaTimer = timer; url = nyUrl; }