void btnPlaylistAdd_Click(object sender, RoutedEventArgs e) { try { // get all playlists List <VM_Playlist> rawPlaylists = VM_ShokoServer.Instance.ShokoServices.GetAllPlaylists().CastList <VM_Playlist>(); PlaylistMenuCommand cmd = null; playlistMenu.Items.Clear(); Separator sep = new Separator(); MenuItem itemNew = new MenuItem(); itemNew.Header = Shoko.Commons.Properties.Resources.EpisodeDetail_NewPlaylist; itemNew.Click += new RoutedEventHandler(playlistMenuItem_Click); cmd = new PlaylistMenuCommand(PlaylistItemType.SingleEpisode, -1); // new playlist itemNew.CommandParameter = cmd; playlistMenu.Items.Add(itemNew); playlistMenu.Items.Add(sep); foreach (VM_Playlist contract in rawPlaylists) { MenuItem itemSeriesPL = new MenuItem(); itemSeriesPL.Header = contract.PlaylistName; itemSeriesPL.Click += new RoutedEventHandler(playlistMenuItem_Click); cmd = new PlaylistMenuCommand(PlaylistItemType.SingleEpisode, contract.PlaylistID); itemSeriesPL.CommandParameter = cmd; playlistMenu.Items.Add(itemSeriesPL); } playlistMenu.PlacementTarget = this; playlistMenu.IsOpen = true; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
void btnPlaylistAdd_Click(object sender, RoutedEventArgs e) { try { // get all playlists List <JMMServerBinary.Contract_Playlist> rawPlaylists = JMMServerVM.Instance.clientBinaryHTTP.GetAllPlaylists(); PlaylistMenuCommand cmd = null; playlistMenu.Items.Clear(); Separator sep = new Separator(); MenuItem itemNew = new MenuItem(); itemNew.Header = "New Playlist"; itemNew.Click += new RoutedEventHandler(playlistMenuItem_Click); cmd = new PlaylistMenuCommand(PlaylistItemType.SingleEpisode, -1); // new playlist itemNew.CommandParameter = cmd; playlistMenu.Items.Add(itemNew); playlistMenu.Items.Add(sep); foreach (JMMServerBinary.Contract_Playlist contract in rawPlaylists) { MenuItem itemSeriesPL = new MenuItem(); itemSeriesPL.Header = contract.PlaylistName; itemSeriesPL.Click += new RoutedEventHandler(playlistMenuItem_Click); cmd = new PlaylistMenuCommand(PlaylistItemType.SingleEpisode, contract.PlaylistID.Value); itemSeriesPL.CommandParameter = cmd; playlistMenu.Items.Add(itemSeriesPL); } playlistMenu.PlacementTarget = this; playlistMenu.IsOpen = true; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
void playlistMenuItem_Click(object sender, RoutedEventArgs e) { try { MenuItem item = e.Source as MenuItem; MenuItem itemSender = sender as MenuItem; if (item == null || itemSender == null) { return; } if (!item.Header.ToString().Equals(itemSender.Header.ToString())) { return; } if (item != null && item.CommandParameter != null) { PlaylistMenuCommand cmd = item.CommandParameter as PlaylistMenuCommand; Debug.Write(Shoko.Commons.Properties.Resources.EpisodeDetail_PlaylistMenu + cmd.ToString() + Environment.NewLine); VM_AnimeEpisode_User ep = DataContext as VM_AnimeEpisode_User; if (ep == null) { return; } // get the playlist VM_Playlist pl = null; if (cmd.PlaylistID < 0) { pl = VM_PlaylistHelper.CreatePlaylist(Window.GetWindow(this)); if (pl == null) { return; } } else { pl = (VM_Playlist)VM_ShokoServer.Instance.ShokoServices.GetPlaylist(cmd.PlaylistID); if (pl == null) { MessageBox.Show(Shoko.Commons.Properties.Resources.EpisodeDetail_PlaylistMissing, Shoko.Commons.Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); return; } } Cursor = Cursors.Wait; pl.AddEpisode(ep.AnimeEpisodeID); pl.Save(); VM_PlaylistHelper.Instance.RefreshData(); Cursor = Cursors.Arrow; } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
void playlistMenuItem_Click(object sender, RoutedEventArgs e) { try { MenuItem item = e.Source as MenuItem; MenuItem itemSender = sender as MenuItem; if (item == null || itemSender == null) { return; } if (!item.Header.ToString().Equals(itemSender.Header.ToString())) { return; } if (item != null && item.CommandParameter != null) { PlaylistMenuCommand cmd = item.CommandParameter as PlaylistMenuCommand; Debug.Write(Properties.Resources.EpisodeDetail_PlaylistMenu + cmd.ToString() + Environment.NewLine); AnimeEpisodeVM ep = this.DataContext as AnimeEpisodeVM; if (ep == null) { return; } // get the playlist PlaylistVM pl = null; if (cmd.PlaylistID < 0) { pl = PlaylistHelperVM.CreatePlaylist(Window.GetWindow(this)); if (pl == null) { return; } } else { JMMServerBinary.Contract_Playlist plContract = JMMServerVM.Instance.clientBinaryHTTP.GetPlaylist(cmd.PlaylistID); if (plContract == null) { MessageBox.Show(Properties.Resources.EpisodeDetail_PlaylistMissing, Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); return; } pl = new PlaylistVM(plContract); } this.Cursor = Cursors.Wait; pl.AddEpisode(ep.AnimeEpisodeID); pl.Save(); PlaylistHelperVM.Instance.RefreshData(); this.Cursor = Cursors.Arrow; } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }