public override object DoRun() { var eventHandlers = Data.GetAll <IAutoRegistered>(); RegisterEventHandlers(eventHandlers); //Interpreter.Plan = Data.GetAll<Keyword>().ToList(); InformativeAnswer successAnswer = new SuccessAnswer("Initialization complete.\n"); if (Interpreter.Data.DataAccesses.OfType <FileObjectAccess>().Any()) { successAnswer.Children.Add(new SuccessAnswer($"Files registered : {Interpreter.Data.DataAccesses.OfType<FileObjectAccess>().Count()}\n")); //foreach (var foa in Interpreter.Data.DataAccesses.OfType<FileObjectAccess>()) //{ // successAnswer.Children.Add(new SuccessAnswer($"\nData Access {foa}")); //} } if (eventHandlers.Any()) { successAnswer.Children.Add(new SuccessAnswer($"Handlers registered : {eventHandlers.Count()}\n")); //foreach (var applicationEventHandler in eventHandlers) //{ // successAnswer.Children.Add(new SuccessAnswer($"\nRegistered {applicationEventHandler}")); //} } if (Interpreter.Data.GetAll <DebugMode>().Any() || Interpreter.Plan.IsNullOrEmpty()) { Interpreter.IsDebugMode = true; } return(successAnswer); }
public override object DoRun() { List <IAnswer> answers = new List <IAnswer>(); var remainingSteps = Interpreter2.Plan.Count() - Interpreter.Iterator.Index; int count = Math.Min(remainingSteps, Count); for (int i = 0; i < count; i++) { ConsoleView.Render(ConsoleColor.DarkGray, $"Starting step {Interpreter.Iterator.Index + 1})\t{Interpreter.Iterator.Current}"); var answer = Interpreter2.Please(string.Empty); answers.Add(answer); //ConsoleView.Render(ConsoleColor.DarkGray, $"Finished step {Interpreter.Iterator.Index })\t{Interpreter.Iterator.Previous}\n{Interpreter.Iterator.Previous.Status}"); ConsoleView.Render(Interpreter.Please("status")); if (UserInteropAdapter.IsKeyDown(Keys.Escape)) { Interpreter.IsDebugMode = true; return("Escape pressed. Interrupting..."); } } if (answers.Any(x => x is INegativeAnswer)) { var baseAnswer = new ExceptionAnswer($"Ran {count} step{(count == 1 ? "" : "s")}."); baseAnswer.Children = answers; return(baseAnswer); } else { var baseAnswer = new SuccessAnswer($"Ran {count} step{(count == 1 ? "" : "s")}."); baseAnswer.Children = answers; return(baseAnswer); } }