protected override async void Execute(object parameter) { if (parameter is LocalPlaylist localPlaylist) { if (await _dialogService.ShowMessageDialog( "DeleteLocalPlaylistDescription".Translate(localPlaylist.Label), "DeleteLocalPlaylistTitle".Translate(), "Delete".Translate(), "Cancel".Translate() )) { _localMylistManager.RemovePlaylist(localPlaylist); } } }
protected override async void Execute(object parameter) { var currentMethod = System.Reflection.MethodBase.GetCurrentMethod(); //Microsoft.AppCenter.Analytics.Analytics.TrackEvent($"{currentMethod.DeclaringType.Name}#{currentMethod.Name}"); if (parameter is LocalPlaylist localPlaylist) { if (await _dialogService.ShowMessageDialog( "DeleteLocalPlaylistDescription".Translate(localPlaylist.Name), "DeleteLocalPlaylistTitle".Translate(localPlaylist.Name), "Delete".Translate(), "Cancel".Translate() )) { _localMylistManager.RemovePlaylist(localPlaylist); } } }
public UserMylistPageViewModel( ApplicationLayoutManager applicationLayoutManager, Services.PageManager pageManager, Services.DialogService dialogService, NiconicoSession niconicoSession, UserProvider userProvider, MylistRepository mylistRepository, UserMylistManager userMylistManager, LocalMylistManager localMylistManager, HohoemaPlaylist hohoemaPlaylist, CreateLocalMylistCommand createLocalMylistCommand ) { ApplicationLayoutManager = applicationLayoutManager; PageManager = pageManager; DialogService = dialogService; NiconicoSession = niconicoSession; UserProvider = userProvider; _mylistRepository = mylistRepository; _userMylistManager = userMylistManager; _localMylistManager = localMylistManager; CreateLocalMylistCommand = createLocalMylistCommand; HohoemaPlaylist = hohoemaPlaylist; IsLoginUserMylist = new ReactiveProperty <bool>(false); OpenMylistCommand = new ReactiveCommand <IPlaylist>(); OpenMylistCommand.Subscribe(listItem => { PageManager.OpenPage(HohoemaPageType.Mylist, $"id={listItem.Id}"); }); AddMylistGroupCommand = new DelegateCommand(async() => { MylistGroupEditData data = new MylistGroupEditData() { Name = "", Description = "", IsPublic = false, MylistDefaultSort = MylistDefaultSort.Latest, IconType = IconType.Default, }; // 成功するかキャンセルが押されるまで繰り返す while (true) { if (true == await DialogService.ShowCreateMylistGroupDialogAsync(data)) { var result = await _userMylistManager.AddMylist( data.Name, data.Description, data.IsPublic, data.MylistDefaultSort, data.IconType ); if (result == Mntone.Nico2.ContentManageResult.Success) { await ResetList(); break; } } else { break; } } } , () => _userMylistManager.Mylists.Count < _userMylistManager.MaxMylistGroupCountCurrentUser ); RemoveMylistGroupCommand = new DelegateCommand <Interfaces.IPlaylist>(async(item) => { { if (item is LocalPlaylist localPlaylist) { if (localPlaylist.IsWatchAfterPlaylist()) { return; } } else if (item is LoginUserMylistPlaylist loginUserMylist) { if (loginUserMylist.IsDefaultMylist()) { return; } } } // 確認ダイアログ var contentMessage = "ConfirmDeleteX_ImpossibleReDo".Translate(item.Label); var dialog = new MessageDialog(contentMessage, "ConfirmDeleteX".Translate(item.GetOrigin().Translate())); dialog.Commands.Add(new UICommand("Delete".Translate(), async(i) => { if (item is LocalPlaylist localPlaylist) { _localMylistManager.RemovePlaylist(localPlaylist); } else if (item is LoginUserMylistPlaylist loginUserMylist) { await _userMylistManager.RemoveMylist(item.Id); } })); dialog.Commands.Add(new UICommand("Cancel".Translate())); dialog.CancelCommandIndex = 1; dialog.DefaultCommandIndex = 1; await dialog.ShowAsync(); }); EditMylistGroupCommand = new DelegateCommand <Interfaces.IPlaylist>(async item => { if (item is LocalPlaylist localPlaylist) { if (item.Id == HohoemaPlaylist.WatchAfterPlaylistId) { return; } var resultText = await DialogService.GetTextAsync("RenameLocalPlaylist".Translate(), localPlaylist.Label, localPlaylist.Label, (tempName) => !string.IsNullOrWhiteSpace(tempName) ); if (!string.IsNullOrWhiteSpace(resultText)) { localPlaylist.Label = resultText; } } else if (item is LoginUserMylistPlaylist loginUserMylist) { if (loginUserMylist.IsDefaultMylist()) { return; } MylistGroupEditData data = new MylistGroupEditData() { Name = loginUserMylist.Label, Description = loginUserMylist.Description, IsPublic = loginUserMylist.IsPublic, MylistDefaultSort = loginUserMylist.DefaultSort, IconType = loginUserMylist.IconType, }; // 成功するかキャンセルが押されるまで繰り返す while (true) { if (true == await DialogService.ShowCreateMylistGroupDialogAsync(data)) { var result = await loginUserMylist.UpdateMylist(data); if (result == Mntone.Nico2.ContentManageResult.Success) { loginUserMylist.Label = data.Name; loginUserMylist.Description = data.Description; loginUserMylist.IsPublic = data.IsPublic; loginUserMylist.DefaultSort = data.MylistDefaultSort; loginUserMylist.IconType = data.IconType; break; } } else { break; } } } }); }