コード例 #1
0
        internal async void ExportCardNamesToClipboard(Deck deck)
        {
            if (deck == null || !deck.GetSelectedDeckVersion().Cards.Any())
            {
                MessageDialogs.ShowMessage(this, "", LocUtil.Get("ShowMessage_CopyCardNames_NoCards")).Forget();
                return;
            }

            try
            {
                var selectedLanguage = await MessageDialogs.ShowSelectLanguageDialog(this);

                if (!selectedLanguage.IsCanceled)
                {
                    Enum.TryParse(selectedLanguage.SelectedLanguage, out Locale myLang);
                    var names = deck.GetSelectedDeckVersion().Cards.ToSortedCardList()
                                .Select(c => (Cards.GetFromDbfId(c.DbfIf).GetLocName(myLang)) + (c.Count > 1 ? " x " + c.Count : ""))
                                .Aggregate((c, n) => c + Environment.NewLine + n);

                    Clipboard.SetDataObject(names);
                    Log.Info("Copied " + deck.GetDeckInfo() + " names to clipboard");
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                ErrorManager.AddError("Error copying card names", LocUtil.Get("ShowMessage_CopyCardNames_Error"));
            }
        }
コード例 #2
0
 internal void ExportIdsToClipboard(Deck deck)
 {
     if (deck == null)
     {
         return;
     }
     Clipboard.SetDataObject(Helper.DeckToIdString(deck.GetSelectedDeckVersion()));
     MessageDialogs.ShowMessage(this, "", "copied ids to clipboard").Forget();
     Log.Info("Copied " + deck.GetSelectedDeckVersion().GetDeckInfo() + " to clipboard");
 }
コード例 #3
0
        private async void ArenaRewards_OnSave(object sender, RoutedEventArgs e)
        {
            if (!ArenaRewards.Validate(out var warning))
            {
                await MessageDialogs.ShowMessage(this, "Error", warning);

                return;
            }
            _deck.ArenaReward = ArenaRewards.Reward;
            DeckList.Save();
            ArenaStats.Instance.UpdateArenaRewards();
            ArenaStats.Instance.UpdateArenaRuns();
            Close();
        }
コード例 #4
0
        internal async void ImportFromClipboard()
        {
            if (_clipboardImportingInProgress)
            {
                return;
            }
            _clipboardImportingInProgress = true;
            var deck = await ClipboardImporter.Import();

            if (deck == null)
            {
                const string dialogTitle = "MainWindow_Import_Dialog_NoDeckFound_Title";
                const string dialogText  = "MainWindow_Import_Dialog_NoDeckFound_Text";
                MessageDialogs.ShowMessage(this, LocUtil.Get(dialogTitle), LocUtil.Get(dialogText)).Forget();
                _clipboardImportingInProgress = false;
                return;
            }
            await ShowImportingChoice(deck);

            _clipboardImportingInProgress = false;
        }