public override void Execute(object sender, HandledEventArgs e) { var trackItem = _buffers.CurrentList.CurrentItem as TrackBufferItem; if (trackItem == null) { return; } var dialog = new AddToPlaylistWindow(); dialog.ShowDialog(); if (dialog.DialogResult != DialogResult.OK) { return; } IntPtr playlistPointer = IntPtr.Zero; if (dialog.ShouldAddNewPlaylist) { var newPlaylistPointer = spotify.CreateNewPlaylist(dialog.NewPlaylistName); if (newPlaylistPointer == IntPtr.Zero) { MessageBox.Show(StringStore.PlaylistNotCreated, StringStore.UnexpectedErrorOccurred, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } playlistPointer = newPlaylistPointer; } else { playlistPointer = dialog.ExistingPlaylistPointer; } var response = spotify.AddTrackToPlaylist(trackItem.Model.TrackPtr, playlistPointer); if (!response.IsError) { output.OutputMessageWithDelay(StringStore.TrackAdded, 1000); } else { MessageBox.Show(response.Message, StringStore.UnableToAddTrackToPlaylist, MessageBoxButtons.OK, MessageBoxIcon.Error); } }