public static void Activate(ICalculatorComponent calculator, ILogger <CalculatorManager> logger) { string another = "YES"; while (!another.Equals("NO")) { Prompts.ChooseOperation(); string options = ""; DisplayOperations(calculator, options); string choice = Console.ReadLine(); Invoker command2 = new Invoker(choice + "_USER_CHOICE"); Invoker finalCalculation = new Invoker("Final Calculation"); calculator.Commands2.Add(command2); calculator.Commands2.Add(finalCalculation); // Handle User Input string last = ""; foreach (Invoker command in calculator.Commands2) { while (!last.Equals("Final Calculation")) { command.Addition.ExecuteConsole(command, calculator, logger); command.Subtraction.ExecuteConsole(command, calculator, logger); command.Multiplication.ExecuteConsole(command, calculator, logger); command.Division.ExecuteConsole(command, calculator, logger); command.SquareRoot.ExecuteConsole(command, calculator, logger); command.Square.ExecuteConsole(command, calculator, logger); last += "Final Calculation"; } } Prompts.Another(); another = Console.ReadLine(); calculator.Commands2.Clear(); options = ""; } }