private async void CheckIfPlaylistExists()
 {
     foreach (var thing in await Task.Run(() => library.ReadTracksForPlaylist(playlist)))
     {
         if (thing.Path == path)
         {
             AddButton.IsEnabled    = false;
             RemoveButton.IsEnabled = true;
             return;
         }
     }
     AddButton.IsEnabled    = true;
     RemoveButton.IsEnabled = false;
 }
Ejemplo n.º 2
0
        private async void MainPanel_ContextMenuOpening(object sender, RoutedEventArgs e)
        {
            MiscContext.Items.Clear();
            var playlists = library.Database.GetCollection <DatabasePlaylist>("playlists").Query().OrderBy("Name").ToEnumerable();

            foreach (var playlist in playlists)
            {
                List <DatabaseTrack> tracks;
                try
                {
                    tracks = await Task.Run(() => library.ReadTracksForPlaylist(playlist.Name));
                }
                catch
                {
                    continue;
                }
                var trackIsInPlaylist = tracks.Any(x => x.Path == FilePath);
                var item = new MenuItem
                {
                    Header      = playlist.Name,
                    IsCheckable = true
                };
                item.IsChecked = trackIsInPlaylist;
                item.Click    += (object sende, RoutedEventArgs ee) =>
                {
                    if (trackIsInPlaylist)
                    {
                        library.RemoveTrackFromPlaylist((string)item.Header, FilePath);
                    }
                    else
                    {
                        library.AddTrackToPlaylist((string)item.Header, FilePath);
                    }
                };
                MiscContext.Items.Add(item);
            }
            MiscContext.Items.Add(new Separator());
            var otheritem = new MenuItem();

            otheritem.Header = Properties.Resources.PLAYLISTMANAGEMENT;
            otheritem.Click += (object send, RoutedEventArgs eee) =>
            {
                var management = new PlaylistManagement(library, notificationHandler, ((Application.Current as App).MainWindow as MainWindow).CurrentTab, FilePath);
                management.ShowDialog();
            };
            MiscContext.Items.Add(otheritem);
        }