private void SearchButton_Click(object sender, EventArgs e) { DisableControls("Searching...", true); YouTube.Channel channelSearch = new YouTube.Channel(); foreach (Database.Types.Channel channel in channelSearch.Search(SearchTextBox.Text)) { AddChannelToListView(channel); } EnableControls(); }
private void ChannelsListView_MouseDoubleClick(object sender, MouseEventArgs e) { ListViewItem clickedItem = ChannelsListView.GetItemAt(e.X, e.Y); if (clickedItem != null) { Database.Types.Channel clickedChannel = (Database.Types.Channel)clickedItem.Tag; if (Database.Channels.Exists(clickedChannel.ID)) { MessageBox.Show($"{clickedChannel.Title} ({clickedChannel.ID}) already exists.", "Channel Exists", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (MessageBox.Show($"Add {clickedChannel.Title}?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { try { DisableControls("Processing...", false); Database.Types.Channel channel = new YouTube.Channel().Info(clickedChannel.ID); Database.Channels.Upsert(channel); Database.ImageFile.Insert(channel.ThumbnailURL, channel.ID, ImageType.ChannelIcon); List <Database.Types.Video> videos = new YouTube.Channel().RecentVideos(channel.ID); foreach (Database.Types.Video video in videos) { video.WatchStatus = SettingsManager.Configuration.NewChannelDefaultVideoStatus; Database.Videos.Insert(video); Database.ImageFile.Insert(video.ThumbnailURL, video.ID, ImageType.VideoThumbnail); } FormsManager.StaticMainForm.AddAllChannels(); LoggingManager.Log.Info($"Added channel '{channel.ID}'."); EnableControls(); MessageBox.Show($"'{channel.Title}' was added along with {videos.Count} new videos.", "Channel Added", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { LoggingManager.Log.Error(ex, $"Failed to add channel '{clickedChannel.ID}'."); EnableControls(); } } } }