/// <summary> /// Set the selected or all video(s) status. /// </summary> /// <param name="status">Status to set the video to.</param> private void SetStatus(WatchStatus status) { if (ModifierKeys == Keys.Shift) { if (MessageBox.Show($"Really mark all videos as {status.ToString()}?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { VideosListView.BeginUpdate(); foreach (ListViewItem item in VideosListView.Items) { if (((Database.Types.Video)item.Tag).WatchStatus != status) { Database.Videos.SetStatus(item.Name, status); UpdateVideoInListView((Database.Types.Video)item.Tag); } } VideosListView.EndUpdate(); } } else { if (VideosListView.SelectedItems.Count == 1) { ListViewItem selectedItem = VideosListView.SelectedItems[0]; Database.Videos.SetStatus(selectedItem.Name, status); UpdateVideoInListView((Database.Types.Video)selectedItem.Tag); } } }
private async Task UpdateVideos() { _viewModel.IsBusy = true; if (_viewModel.PageNumber < 1) { _viewModel.PageNumber = 1; } // _viewModel.TagsCollection.Clear(); _viewModel.ItemsPerPage = Preferences.Get(Constants.VideosPerPage, 8); VideoPage videosPage = await ProgenyService.GetVideoPage(_viewModel.PageNumber, _viewModel.ItemsPerPage, _viewModel.ViewChild, _viewModel.UserAccessLevel, _viewModel.UserInfo.Timezone, 1, _viewModel.TagFilter); if (videosPage.VideosList != null) { _viewModel.VideoItems.ReplaceRange(videosPage.VideosList); _viewModel.PageNumber = videosPage.PageNumber; _viewModel.PageCount = videosPage.TotalPages; VideosListView.ScrollTo(0); if (!string.IsNullOrEmpty(videosPage.TagsList)) { List <string> tagsList = videosPage.TagsList.Split(',').ToList(); tagsList.Sort(); foreach (string tagString in tagsList) { _viewModel.TagsCollection.Add(tagString); } } } _viewModel.IsBusy = false; }
/// <summary> /// Add all videos to <see cref="VideosListView"/> from <see cref="Channels.GetAllVideos(string)"/>. /// Clears all existing videos already in the listview (if any). /// </summary> /// <param name="channelID">Channel ID to add the videos from.</param> public void AddChannelVideos(string channelID) { VideosListView.BeginUpdate(); VideosListView.Items.Clear(); IEnumerable <Database.Types.Video> videos = Database.Channels.GetAllVideos(channelID).OrderByDescending(v => v.Posted); foreach (Database.Types.Video video in videos) { AddVideoToListView(video); } VideosListView.Columns[PostedColumn.Index].TextAlign = HorizontalAlignment.Right; VideosListView.EndUpdate(); }
/// <summary> /// Add all channels to <see cref="ChannelsListView"/> from <see cref="Channels.GetAll()"/>. /// Clears all existing channels already in the listview (if any). /// </summary> public void AddAllChannels() { ChannelsListView.BeginUpdate(); VideosListView.BeginUpdate(); ChannelsListView.Items.Clear(); VideosListView.Items.Clear(); ChannelsListViewChanged(); foreach (Database.Types.Channel channel in Database.Channels.GetAll()) { AddChannelToListView(channel); } ChannelsListView.EndUpdate(); VideosListView.EndUpdate(); }