/// <summary> /// プレイリストアイテムを削除する /// </summary> /// <returns></returns> public async Task RemovePlaylistItemAsync() { // 選択されている要素がない場合何もしない var selectedItemIds = PlaylistItemList.Where(item => item.IsChecked.Value).Select(item => item.Id); if (selectedItemIds.Any() == false) { return; } await m_YouTubeService.RemovePlaylistItems(selectedItemIds); await UpdatePlaylistItemList(Playlist.Value); }
/// <summary> /// プレイリストアイテムを移動する /// </summary> /// <returns></returns> public async Task MovePlaylistItemAsync(IPlaylistListViewItemViewModel playlist) { // 選択されている要素がなかったり、そもそも移動先が指定されていなければ何もしない var selectedItemIds = PlaylistItemList.Where(item => item.IsChecked.Value).Select(item => item.Id); if (playlist == null || selectedItemIds.Any() == false) { return; } var selectedItemResourceIds = PlaylistItemList.Where(item => item.IsChecked.Value).Select(item => item.ResourcesId); await m_YouTubeService.MovePlaylistItems(selectedItemIds, selectedItemResourceIds, playlist.Id); await UpdatePlaylistItemList(Playlist.Value); }
/// <summary> /// プレイリストアイテムの一覧を更新する /// </summary> /// <param name="itemViewModel"></param> /// <returns></returns> private async Task UpdatePlaylistItemList(Playlist?playlist) { PlaylistItemList.Clear(); Playlist.Value = playlist; if (playlist == null) { return; } Title.Value = playlist.Title; Description.Value = playlist.Description; var playlistItems = await m_YouTubeService.GetPlaylistItems(playlist.PlaylistId); foreach (var item in playlistItems) { PlaylistItemList.Add(new PlaylistItemViewModel(item, m_WebClientService)); } }