public static void Run() { Console.WriteLine(GetPatternDescription()); GoToNextStep(); while (true) { Console.Clear(); Console.WriteLine(ExeucteFirstWhenConditionMatchesFlavorDescription()); Console.WriteLine(ExecuteAllUntilConditionIsFalseFlavorDescription()); Console.WriteLine(ExecuteAllFlavorDescritpion()); Console.WriteLine("1: Money Spender (flavor 1)"); Console.WriteLine("2: File Transfer (flavor 1)"); Console.WriteLine("3: User Processor (flavor 1 and 3)"); Console.WriteLine("4: pitfals"); Console.WriteLine("5: Poker Game (flavor 1)"); Console.Write("0: exit\r\n>"); var keyChar = GoToNextStep(); switch (keyChar) { case '1': CheckAuthority moneySpender = new CheckAuthority(); Console.WriteLine(moneySpender.GetDescriptionOfExample()); GoToNextStep(); moneySpender.PrintHowMuchEachCanSpend(); moneySpender.SpendMoney(); break; case '2': TransferFilesManager transferFilesManager = new TransferFilesManager(); Console.WriteLine(transferFilesManager.GetDescriptionOfExample()); GoToNextStep(); transferFilesManager.TransferFiles(); break; case '3': UserProcessor userProcessor = new UserProcessor(); userProcessor.DoStuff(); break; case '4': Console.WriteLine(GetPitfalls()); GoToNextStep(); break; case '5': PokerGame poke = new PokerGame(); poke.newGame(); break; } if (keyChar == '0') { break; } } }