예제 #1
0
        private async void RenameFlyoutOKButtonClickHandler(object sender, RoutedEventArgs e)
        {
            await mainPage.CurrentDispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
            {
                var baseName = renameFlyout.NewName;
                if (String.IsNullOrWhiteSpace(baseName))
                {
                    return;
                }

                if (baseName.Equals("Default", StringComparison.OrdinalIgnoreCase) && deckShowContextMenu.Id != Constant.DEFAULTDECK_ID)
                {
                    await UIHelper.ShowMessageDialog("You can't name a non-default deck \"Default\"");
                    return;
                }

                var existingName = deckListViewModel.GetAllDeckBaseName();
                if (existingName.Contains(baseName))
                {
                    await NotifyNameAlreadyExist();
                    return;
                }

                try
                {
                    var newName = deckListViewModel.GetNewFullName(deckShowContextMenu, baseName);
                    var deck    = collection.Deck.Get(deckShowContextMenu.Id);
                    collection.Deck.Rename(deck, newName);
                    deckListViewModel.UpdateDeckName(deckShowContextMenu);

                    collection.Deck.Save(deck);
                    collection.SaveAndCommitAsync();

                    var tile = await TilesHelper.FindExisting(deckShowContextMenu.Id.ToString());
                    if (tile != null)
                    {
                        tile.DisplayName = newName;
                        await tile.UpdateAsync();
                    }
                }
                catch (DeckRenameException ex)
                {
                    if (ex.Error == DeckRenameException.ErrorCode.ALREADY_EXISTS)
                    {
                        await NotifyNameAlreadyExist();
                    }
                    else
                    {
                        await UIHelper.ShowMessageDialog("You cannot rename this deck!");
                    }
                }
                catch
                {
                    await UIHelper.ShowMessageDialog("Unexpected error!");
                }
            });
        }
예제 #2
0
        private async void RenameFlyoutOKButtonClickHandler(object sender, RoutedEventArgs e)
        {
            await mainPage.CurrentDispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
            {
                var baseName = renameFlyout.NewName;
                if (String.IsNullOrWhiteSpace(baseName))
                {
                    return;
                }

                var existingName = deckListViewModel.GetAllDeckBaseName();
                if (existingName.Contains(baseName))
                {
                    await NotifyNameAlreadyExist();
                    return;
                }

                try
                {
                    var newName = deckListViewModel.GetNewFullName(deckShowContextMenu, baseName);
                    var deck    = collection.Deck.Get(deckShowContextMenu.Id);
                    collection.Deck.Rename(deck, newName);
                    deckListViewModel.UpdateDeckName(deckShowContextMenu);

                    collection.Deck.Save(deck);
                    collection.SaveAndCommitAsync();
                }
                catch (DeckRenameException ex)
                {
                    if (ex.Error == DeckRenameException.ErrorCode.ALREADY_EXISTS)
                    {
                        await NotifyNameAlreadyExist();
                    }
                    else
                    {
                        await UIHelper.ShowMessageDialog("You cannot rename this deck!");
                    }
                }
                catch
                {
                    await UIHelper.ShowMessageDialog("Unexpected error!");
                }
            });
        }