public async Task SearchPlaylists(IEnumerable <Playlist> source, string keyword, SortBy criterion) { AllPlaylists.SetTo(await Task.Run(() => SearchHelper.SearchPlaylists(source, keyword, criterion))); Playlists.SetTo(AllPlaylists.Take(PlaylistLimit)); PlaylistsTextBlock.Text = Settings.settings.ShowCount ? Helper.LocalizeText("PlaylistsWithCount", AllPlaylists.Count) : Helper.LocalizeText("Playlists"); PlaylistsViewAllButton.Visibility = AllPlaylists.Count > PlaylistLimit ? Visibility.Visible : Visibility.Collapsed; SortPlaylistsButton.Visibility = Playlists.Count < 2 ? Visibility.Collapsed : Visibility.Visible; }
private void SortPlaylistsButton_Click(object sender, RoutedEventArgs e) { MenuFlyoutHelper.SetSortByMenu(sender, Settings.settings.SearchPlaylistsCriterion, PlaylistsCriteria, async item => { Settings.settings.SearchPlaylistsCriterion = item; LoadingProgress.Visibility = Visibility.Visible; int nowPlayingIndex = AllPlaylists.FindIndex(i => i.Name == MenuFlyoutHelper.NowPlaying); if (nowPlayingIndex >= 0) { AllPlaylists.RemoveAt(nowPlayingIndex); } int myFavoritesIndex = AllPlaylists.FindIndex(i => i.Name == MenuFlyoutHelper.MyFavorites); if (myFavoritesIndex >= 0) { AllPlaylists.RemoveAt(myFavoritesIndex); } AllPlaylists.SetTo(await Task.Run(() => SearchHelper.SortPlaylists(AllPlaylists, CurrentKeyword.Text, item).ToList())); Playlists.SetTo(AllPlaylists.Take(Playlists.Count)); LoadingProgress.Visibility = Visibility.Collapsed; }); }