public async Task InitializeAsync() { var settingsLoader = new SettingsLoader(); VideosPerPage = int.Parse((await settingsLoader.GetSettingAsync(Setting.MAXVIDEOSPERPAGE))?.Value ?? "50"); ThumpnailSize = int.Parse((await settingsLoader.GetSettingAsync(Setting.THUMPNAILSIZE))?.Value ?? "320"); var videos = await _VideoProvider.GetVideos(); videos = videos.OrderBy(x => x.Artist.Name).ThenBy(x => x.Name).ToList(); foreach (var video in videos) { var vidVM = new VideoViewModel(video); Videos.Add(vidVM); } FilteredVideos = Videos.ToList(); // Add all videos to CurrentPageVideos, page filtering is done via SourceCollectionView.Filter foreach (var video in Videos) { CurrentPageVideos.Add(video); } VideoCollectionView.MoveCurrentToFirst(); MaxPage = Videos.Count / VideosPerPage; GroupAfterArtist(null); foreach (var video in Videos) { video.ThumbailBitmap = await video.GetThumbnailBitmap().ConfigureAwait(false); } }
private async void VideoProvider_VideoAdded(object sender, Video e) { if (Videos.Any(x => x.FilePath == e.FilePath)) { return; } var videoVM = new VideoViewModel(e); Videos.Add(videoVM); FilteredVideos.Add(videoVM); SetCurrentPage(); videoVM.ThumbailBitmap = await videoVM.GetThumbnailBitmap().ConfigureAwait(false); }
public VideoPageViewModel(IVideoProvider videoProvider) { _VideoProvider = videoProvider; videoProvider.VideoAdded += VideoProvider_VideoAdded; CurrentPage = 0; MaxPage = 0; VideoSortOptions.Add(new VideoSortOptionViewModel { IconKind = MahApps.Metro.IconPacks.PackIconBoxIconsKind.RegularUser, Name = "Artist", VideoSortOption = VideoSortOptionViewModel.VideoSortOptionKind.Artist, SortedAscending = true, ApplyVideoGroupOption = GroupAfterArtist }); VideoSortOptions.Add(new VideoSortOptionViewModel { IconKind = MahApps.Metro.IconPacks.PackIconBoxIconsKind.RegularCalendar, Name = "Date", VideoSortOption = VideoSortOptionViewModel.VideoSortOptionKind.Date, ApplyVideoGroupOption = GroupAfterDate }); VideoSortOptions.Add(new VideoSortOptionViewModel { IconKind = MahApps.Metro.IconPacks.PackIconBoxIconsKind.RegularSortAZ, Name = "Alphabet", VideoSortOption = VideoSortOptionViewModel.VideoSortOptionKind.Alphabet, ApplyVideoGroupOption = GroupAfterAlphabet }); SelectedVideoSortOption = VideoSortOptions[0]; RefreshVideosCommand = new RelayCommand <int?>(RefreshVideos); NextPageCommand = new RelayCommand <int?>(NextPage, CanGoToNextPage); LastPageCommand = new RelayCommand <int?>(LastPage, CanGoToLastPage); SortAfterDateCommand = new RelayCommand <int?>(GroupAfterDate); ToggleSortOrderCommand = new RelayCommand <int?>(ToggleSortOrder); NextVideoCommand = new RelayCommand <object>(NextVideo); PreviousVideoCommand = new RelayCommand <object>(PreviousVideo); AutoSuggestSubmitCommand = new RelayCommand <object>(FilterVideos); AutoSuggestTextInputCommand = new RelayCommand <string>(AutoSuggestTextInput); SetVideoFavoriteCommand = new RelayCommand <object>(SaveIsFavoriteVideo); SelectedVideo = new VideoViewModel(new Video()); VideoCollectionView = CollectionViewSource.GetDefaultView(CurrentPageVideos); }