Esempio n. 1
0
        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);
        }
Esempio n. 2
0
File: Run.cs Progetto: ohomola/gears
        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);
            }
        }