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!"); } }); }