private void YesNo()
        {
            var dialog = new YesNoDialogViewModel("Question", "Can you see this?");
            var result = _dialogService.OpenDialog(dialog);

            Console.WriteLine(result);
        }
示例#2
0
        /// <summary>
        /// Execute the <see cref="CopyElementDefinitionCommand"/>
        /// </summary>
        private async Task ExecuteCopyElementDefinition()
        {
            var elementDef = this.SelectedThing.Thing as ElementDefinition;
            var copyUsage  = true;

            if ((elementDef != null) && elementDef.ContainedElement.Any())
            {
                var yesNoDialogViewModel = new YesNoDialogViewModel("Confirmation", "Would you like to copy the Element Usages?");
                var result = this.DialogNavigationService.NavigateModal(yesNoDialogViewModel);

                copyUsage = result.Result.HasValue && result.Result.Value;
            }

            try
            {
                this.IsBusy = true;
                var copyCreator = new CopyElementDefinitionCreator(this.Session);
                await copyCreator.Copy((ElementDefinition)this.SelectedThing.Thing, copyUsage);
            }
            catch (Exception exception)
            {
                logger.Error(exception, "An error occured when creating a copy of an Element Definition");
            }
            finally
            {
                this.IsBusy = false;
            }
        }
示例#3
0
        private static void ShowErrorDialog(Exception ex)
        {
            YesNoDialogViewModel dialogViewModel = new YesNoDialogViewModel("Error",
                                                                            ex.ToString(), "OK",
                                                                            string.Empty, null, null);
            YesNoDialog dialog = new YesNoDialog(dialogViewModel);

            dialog.ShowDialog();
        }
示例#4
0
        public YesNoDialogWindow()
        {
            InitializeComponent();
            YesNoDialogViewModel vm = new YesNoDialogViewModel();

            DataContext = vm;
            if (vm.CloseAction == null)
            {
                vm.CloseAction = () => { };
            }

            vm.CloseAction = Close;
        }
示例#5
0
 /// <summary>
 /// Resets the content to the content of the first <see cref="Definition"/> of the <see cref="Requirement"/>
 /// </summary>
 /// <param name="withWarning">
 /// If true, a warning message will be displayed.
 /// </param>
 private void ResetContent(bool withWarning)
 {
     // give a warning. If user cancels the changes are not reset.
     if (withWarning)
     {
         var yesNoDialog  = new YesNoDialogViewModel("Cancel Edit", "Press Yes if you want to cancel the edit. All changes will be lost");
         var dialogResult = this.dialogNavigationService.NavigateModal(yesNoDialog);
         if (dialogResult != null && dialogResult.Result != null && dialogResult.Result.Value)
         {
             this.DefinitionContent = this.originalDefinitionContent;
             this.EventPublisher.Publish(new ConfirmationEvent(true));
         }
     }
 }
示例#6
0
        private async void ExecuteWinDialog(bool reportWinning, Player player, WinningReason winningReason, Move invalidMove)
        {
            var yesNoDialogViewModel = new YesNoDialogViewModel(GetWinningOrLoosingMessage(reportWinning, winningReason, invalidMove));

            var winningDialog = new YesNoDialog
            {
                DataContext = yesNoDialogViewModel
            };

            var dialogResult = await DialogHost.Show(winningDialog, "RootDialog");

            if ((bool)dialogResult)
            {
                var dialog = new SaveFileDialog()
                {
                    Filter          = "textFiles |*.txt",
                    AddExtension    = true,
                    CheckFileExists = false,
                    OverwritePrompt = true,
                    ValidateNames   = true,
                    CheckPathExists = true,
                    CreatePrompt    = false,
                    Title           = Captions.PvB_SaveGameProgressFileDialogTitle
                };

                var result = dialog.ShowDialog();

                if (result.HasValue)
                {
                    if (result.Value)
                    {
                        var fileText = CreateProgressText.FromBoardState(gameService.CurrentBoardState)
                                       .AndAppendWinnerAndReason(player, winningReason, invalidMove);

                        File.WriteAllText(dialog.FileName, fileText);
                    }
                }
            }

            yesNoDialogViewModel.Dispose();
        }
示例#7
0
        private async void OnClosing(object sender, CancelEventArgs cancelEventArgs)
        {
            var mainWindowViewModel = AssociatedObject.DataContext as IMainWindowViewModel;

            if (mainWindowViewModel.PreventWindowClosingToAskUser)
            {
                cancelEventArgs.Cancel = true;

                var closingDialogViewModel = new YesNoDialogViewModel(Captions.ClosingDialogMessage);
                var closingDialog          = new YesNoDialog
                {
                    DataContext = closingDialogViewModel
                };

                var closingDialogResult = await DialogHost.Show(closingDialog, "RootDialog");

                if ((bool)closingDialogResult)
                {
                    var savingDialogViewModel = new YesNoDialogViewModel(Captions.SavingDialogMessage);
                    var savingDialog          = new YesNoDialog
                    {
                        DataContext = savingDialogViewModel
                    };

                    var savingDialogResult = await DialogHost.Show(savingDialog, "RootDialog");

                    if ((bool)savingDialogResult)
                    {
                        if (mainWindowViewModel.DumpProgressToFile.CanExecute(null))
                        {
                            mainWindowViewModel.DumpProgressToFile.Execute(null);
                        }
                    }

                    mainWindowViewModel.CloseWindow.Execute(null);
                }

                closingDialogViewModel.Dispose();
            }
        }
示例#8
0
 public YesNoDialog(YesNoDialogViewModel viewModel)
 {
     InitializeComponent();
     _viewModel  = viewModel;
     DataContext = _viewModel;
 }
示例#9
0
        private async Task SearchSubmit_ExecuteAsync()
        {
            DisplayErrors.Clear();
            TimeSpan?timeSinceUpdate = DateTime.Now - OracleCatalog.UpdateTime;

            if (timeSinceUpdate == null)
            {
                var yesNoDialog = new YesNoDialogViewModel("Card Catalog must be updated before continuing. Would you like to update the Card Catalog (~65 MB) now?", "Update?");
                if (!(DialogService.ShowDialog(yesNoDialog) ?? false))
                {
                    return;
                }

                await UpdateCatalog_ExecuteAsync();
            }

            if (timeSinceUpdate > TimeSpan.FromDays(7))
            {
                var yesNoDialog = new YesNoDialogViewModel("Card Catalog is out of date, it is recommended you get a new catalog now." +
                                                           "If you don't, cards may not appear in search results or you may receive old " +
                                                           "imagery. Click 'Yes' to update the Card Catalog (~65 MB) now or 'No' use the old catalog.", "Update?");
                if (!(DialogService.ShowDialog(yesNoDialog) ?? false))
                {
                    return;
                }

                await UpdateCatalog_ExecuteAsync();
            }

            DisplayedCards.Clear();
            await Task.Delay(100);

            Reporter.StartBusy();
            Reporter.StartProgress();
            Reporter.Report("Deciphering old one's poem");
            Reporter.StatusReported += BuildingCardsErrors;

            List <SearchLine> lines = DecklistText
                                      .Split(new[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries)
                                      .Where(s => !string.IsNullOrWhiteSpace(s))
                                      .Select(l => new SearchLine(l))
                                      .ToList();

            for (var i = 0; i < lines.Count; i++)
            {
                List <Card> cards = OracleCatalog.FindExactCard(lines[i].SearchTerm);

                if (!cards.Any())
                {
                    cards.Add(await ScryfallService.GetFuzzyCardAsync(lines[i].SearchTerm, Reporter));
                }

                if (!cards.Any() || cards.Any(c => c == null))
                {
                    Reporter.Report($"[{lines[i].SearchTerm}] returned no results", true);
                    continue;
                }

                Card preferredCard;

                if (cards.Count > 1)
                {
                    var cardChooser = new ChooseCardDialogViewModel(cards, Reporter);
                    await cardChooser.LoadImagesFromCards();

                    if (!(DialogService.ShowDialog(cardChooser) ?? false))
                    {
                        continue;
                    }

                    preferredCard = ArtPreferences.GetPreferredCard(cardChooser.ChosenCard);
                }
                else
                {
                    preferredCard = ArtPreferences.GetPreferredCard(cards.Single());
                }

                if (preferredCard.IsDoubleFaced)
                {
                    BitmapSource frontImage = ImageHelper.LoadBitmap(await ImageCaching.GetImageAsync(preferredCard.CardFaces[0].ImageUris.BorderCrop, Reporter));
                    var          frontVm    = new CardViewModel(Reporter, ArtPreferences, preferredCard, frontImage, lines[i].Quantity, ZoomPercent);

                    BitmapSource backImage = ImageHelper.LoadBitmap(await ImageCaching.GetImageAsync(preferredCard.CardFaces[1].ImageUris.BorderCrop, Reporter));
                    var          backVm    = new CardViewModel(Reporter, ArtPreferences, preferredCard, backImage, lines[i].Quantity, ZoomPercent, false);

                    DisplayedCards.Add(frontVm);
                    await Task.Delay(10);

                    DisplayedCards.Add(backVm);
                    await Task.Delay(10);

                    Reporter.Progress(i, 0, lines.Count - 1);
                }
                else
                {
                    BitmapSource preferredImage = ImageHelper.LoadBitmap(await ImageCaching.GetImageAsync(preferredCard.ImageUris.BorderCrop, Reporter));
                    var          cardVm         = new CardViewModel(Reporter, ArtPreferences, preferredCard, preferredImage, lines[i].Quantity, ZoomPercent);
                    DisplayedCards.Add(cardVm);
                    await Task.Delay(10);

                    Reporter.Progress(i, 0, lines.Count - 1);
                }
            }

            Reporter.StatusReported -= BuildingCardsErrors;
            Reporter.StopBusy();
            Reporter.StopProgress();
        }