internal override void Execute(BaseExecutable executable)
        {
            BaseCommand command = (BaseCommand)executable;

            console.WriteEmptyLine();
            console.WriteSingleSeparator();
            console.WriteLine("COMMAND: {0}", command.Title);

            PrintDescription(command);

            try
            {
                console.WriteEmptyLine();
                console.WriteSectionLine("Question Section");
                ExecuteQuestions(command);

                console.WriteEmptyLine();
                console.WriteSectionLine("Execution Section");

                command.Execute();
            }
            catch (Exception e)
            {
                console.WriteException(e);
            }

            console.WriteSingleSeparator();
        }
        internal override void Execute(BaseExecutable executable)
        {
            Question question = (Question)executable;

            do
            {
                PromptForQuestionInput(question);
            }
            while (answerValidation.Run(question.Answer));
        }
        internal override void Execute(BaseExecutable executable)
        {
            Application application = (Application)executable;
            application.AddCommand(new ExitCommand());

            console.WriteEmptyLine();
            console.WriteSeparator();
            console.WriteLine(application.Title);
            console.WriteSeparator();

            ConfigureCommands(application.Commands);

            int commandNumber;

            do
            {
                PrintAvailableCommands(application);
                commandNumber = AskForCommandNumber();
            }
            while (!WasExitCommandEntered(application, commandNumber));
        }