//マイリストを削除 public async void ShowDeleteView(ICollection targetRaw) { var target = targetRaw.Cast <MylistResultEntryViewModel>(); var operation = new MylistOperationViewModel(Owner, this, target); App.ViewModelRoot.Messenger.Raise(new TransitionMessage(typeof(Views.MylistDeleteView), operation, TransitionMode.Modal)); if (operation.IsCanceled || operation.Operation != MylistOperation.Delete) { return; } //削除が出来たらリストから消す if (await MylistInstance.Item.DeleteMylistAsync(operation.SelectedMylist, await MylistInstance.GetMylistTokenAsync())) { foreach (var entry in operation.SelectedMylist) { //元のリストから削除 MylistList.Remove(entry); } Sort(SortIndex); } }
public async void Drop(IDropInfo dropInfo) { Status = ""; if (dropInfo.TargetItem is MylistResultViewModel) { var vm = (MylistResultViewModel)dropInfo.TargetItem; var selectedList = new List <MylistResultEntryViewModel>(); if (dropInfo.Data is ICollection) { var data = (ICollection)dropInfo.Data; foreach (var list in data) { selectedList.Add((MylistResultEntryViewModel)list); } } else { selectedList.Add((MylistResultEntryViewModel)dropInfo.Data); } var operation = new MylistOperationViewModel(this, vm, selectedList); App.ViewModelRoot.Messenger.Raise(new TransitionMessage(typeof(Views.MylistCopyOrMoveView), operation, TransitionMode.Modal)); if (operation.IsCanceled) { return; } var token = await MylistInstance.GetMylistTokenAsync(); //マイリストコピー処理 if (operation.Operation == MylistOperation.Copy) { if (await MylistInstance.Item.CopyMylistAsync(selectedList, vm.Group, token)) { foreach (var entry in selectedList) { //同じIDのマイリストがあったらコピーしない if (vm.MylistList.Where(e => e.Item.ItemId == entry.Item.ItemId).Count() == 0) { //ターゲット側マイリストに追加 vm.MylistList.Add(entry); } } vm.Sort(vm.SortIndex); } return; } //マイリスト移動処理 if (operation.Operation == MylistOperation.Move) { if (await MylistInstance.Item.MoveMylistAsync(selectedList, vm.Group, token)) { foreach (var entry in selectedList) { //同じIDのマイリストがあったら移動しない if (vm.MylistList.Where(e => e.Item.ItemId == entry.Item.ItemId).Count() == 0) { //ターゲット側マイリストに追加 vm.MylistList.Add(entry); } //元のリストから削除 entry.Owner.MylistList.Remove(entry); } vm.Sort(vm.SortIndex); } return; } } }