Exemple #1
0
        public int ReadChoice(string caption, string message, IList <ChoiceItem> choices, int defaultChoice)
        {
            if (string.IsNullOrEmpty(caption))
            {
                caption = ResourceStrings.PromptForChoice_DefaultCaption;
            }

            if (message == null)
            {
                message = string.Empty;
            }

            if (choices == null)
            {
                throw new ArgumentNullException("choices");
            }

            if (!choices.Any())
            {
                throw new ArgumentException(string.Format(ResourceStrings.ChoicesCollectionShouldHaveAtLeastOneElement, "choices"), "choices");
            }

            foreach (var c in choices)
            {
                if (c == null)
                {
                    throw new ArgumentNullException("choices");
                }
            }

            if (defaultChoice < -1 || defaultChoice >= choices.Count)
            {
                throw new ArgumentOutOfRangeException("defaultChoice");
            }

            int choice = -1;

            ThreadHelper.Generic.Invoke(() =>
            {
                ReadHostPromptForChoicesViewModel viewModel = new ReadHostPromptForChoicesViewModel(caption, message, choices, defaultChoice);
                ReadHostPromptForChoicesView dialog         = new ReadHostPromptForChoicesView(viewModel);

                NativeMethods.SetForegroundWindow();
                var ret = dialog.ShowModal();
                if (ret == true)
                {
                    choice = viewModel.UserChoice;
                }
            });

            return(choice);
        }
Exemple #2
0
        public void ShouldInitializeViewModelCorrectly()
        {
            ReadHostPromptForChoicesViewModel viewModel = new ReadHostPromptForChoicesViewModel(
                "Caption",
                "Message",
                new ChoiceItem[] {
                new ChoiceItem("Label_Apple", "This is an Apple"),
                new ChoiceItem("Label_Banana", "This is a banana"),
                new ChoiceItem("Label_Orange", "This is an orange")
            },
                1);

            Assert.AreEqual <string>("Caption", viewModel.Caption);
            Assert.AreEqual <string>("Message", viewModel.Message);
            Assert.AreEqual <bool>(false, viewModel.Choices[0].IsDefault);
            Assert.AreEqual <bool>(true, viewModel.Choices[1].IsDefault);
            Assert.AreEqual <bool>(false, viewModel.Choices[2].IsDefault);
        }
Exemple #3
0
        public void ShouldExecuteCommandCorrectly()
        {
            ReadHostPromptForChoicesViewModel viewModel = new ReadHostPromptForChoicesViewModel(
                "Caption",
                "Message",
                new ChoiceItem[] {
                new ChoiceItem("Label_Apple", "This is an Apple"),
                new ChoiceItem("Label_Banana", "This is a banana"),
                new ChoiceItem("Label_Orange", "This is an orange")
            },
                1);

            Assert.AreEqual <bool>(false, viewModel.Choices[0].IsDefault);
            Assert.AreEqual <bool>(true, viewModel.Choices[1].IsDefault);
            Assert.AreEqual <bool>(false, viewModel.Choices[2].IsDefault);

            viewModel.Command.Execute("Label_Orange");
            Assert.AreEqual <int>(2, viewModel.UserChoice);
        }