// Updates the data of a specific podcast private void btnUpdatePod_Click(object sender, EventArgs e) { try { string title = lvPods.SelectedItems[0].SubItems[1].Text; string url = tbUrl.Text; string category = cbCategory.Text; var stringFrequency = cbFrequency.SelectedItem; if (Validator.StringNotEmpty(title) && Validator.StringNotEmpty(category) && Validator.ParseFrequency(stringFrequency)) { int frequency = Int32.Parse(stringFrequency.ToString()); PodcastList.DeletePod(title); EpisodeList.DeleteEpisodes(title); DataLayerAccessor.AddPodcast(url, category, frequency); DataLayerAccessor.CreateFiles(); UpdatePodListView(); lvEpisodes.Items.Clear(); tbEpDescription.Clear(); MessageBox.Show("Podcasten uppdaterades!", "Wohoo!", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch { MessageBox.Show("Ingen podcast är vald.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
// Runs when the form is first loading private void Form1_Load(object sender, EventArgs e) { new PodcastList(); new EpisodeList(); new CategoryList(); DataLayerAccessor.LoadFileData(); UpdatePodListView(); UpdateCategoryListView(); }
// Button to add a new Podcast private void btnAdd_Click(object sender, EventArgs e) { string url = tbUrl.Text; string category = cbCategory.Text; var stringFrequency = cbFrequency.SelectedItem; if (Validator.StringNotEmpty(category) && Validator.ParseFrequency(stringFrequency) && Validator.PodcastAlreadyExist(url)) { int frequency = Int32.Parse(stringFrequency.ToString()); DataLayerAccessor.AddPodcast(url, category, frequency); DataLayerAccessor.CreateFiles(); UpdatePodListView(); } }
// The timer, NOT DONE!!! private static async void TimerElapsed(object sender, System.Timers.ElapsedEventArgs e, string url, string title, string category, int frequency) { List <Podcast> list = PodcastList.GetPodList(); bool PodExists = false; int NumberOfEpisodes = 0; int OldNumberOfEpisodes = await RssReader.GetNumberOfEpisodes(url); foreach (Podcast pod in list) { if (pod.Title == title) { NumberOfEpisodes = pod.Episodes; PodExists = true; } } if (!PodExists) { timer.Enabled = false; } if (NumberOfEpisodes > OldNumberOfEpisodes) { PodcastList.DeletePod(title); EpisodeList.DeleteEpisodes(title); DataLayerAccessor.AddPodcast(url, category, frequency); CreateFile.CreatePodcastFile(); CreateFile.CreateEpisodeFile(); timer.Enabled = false; MessageBox.Show("Nytt avsnitt har hittats!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Inga nya avsnitt hittades!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Error); } PodExists = false; }
// Button to delete a podcast private void btnDeletePod_Click(object sender, EventArgs e) { try { string title = lvPods.SelectedItems[0].SubItems[1].Text; if (Validator.StringNotEmpty(title)) { PodcastList.DeletePod(title); EpisodeList.DeleteEpisodes(title); DataLayerAccessor.CreateFiles(); UpdatePodListView(); lvEpisodes.Items.Clear(); tbEpDescription.Clear(); } } catch { MessageBox.Show("Ingen podcast är vald.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }