private static int ReadScenarioNumberFromConsole()

in sdk/SdkSamples/ScenarioExecution/AggregateScenarioExecutionStrategy.cs [64:97]


        private static int ReadScenarioNumberFromConsole(int maxScenarioNumber)
        {
            if (maxScenarioNumber < 1)
            {
                throw new ArgumentException("maxScenarioNumber must be at least 1");
            }

            int scenarioNumber;

            while (true)
            {
                ConsoleHelper.Instance.Warning("Enter the scenario number to run (press Q to exit to previous screen): ");
                string input = Console.ReadLine();
                
                if (input.Equals("q", StringComparison.OrdinalIgnoreCase))
                {
                    scenarioNumber = 0;
                    break;
                }
                else if (int.TryParse(input, out scenarioNumber))
                {
                    if (scenarioNumber >= 1 && scenarioNumber <= maxScenarioNumber)
                    {
                        break;
                    }
                    else
                    {
                        ConsoleHelper.Instance.Error(string.Format(CultureInfo.InvariantCulture, "Enter a scenario number between 1 and {0}", maxScenarioNumber));
                    }
                }
            }

            return scenarioNumber;
        }