Exemple #1
0
        private void ExecuteMacro(string json, ConsoleModeContext context)
        {
            var macroHolder = JsonConvert.DeserializeObject <MacroHolder>(json);

            if (macroHolder == null || macroHolder.Tasks == null || macroHolder.Tasks.Count == 0)
            {
                _console.WriteLine("Not found tasks in macro");
                _console.WriteLine("This is the json of the macro: ");
                _console.WriteLine(json);
                return;
            }

            foreach (var taskHolder in macroHolder.Tasks)
            {
                _console.WriteLine("Executing Task: {0}", taskHolder.Task);
                var list = context.TaskList;
                if (list == null)
                {
                    continue;
                }

                var task = list.FirstOrDefault(t => t.Key == taskHolder.Task);
                if (task != null)
                {
                    task.Task.Execute(taskHolder.Parameters);
                }
            }
        }
Exemple #2
0
        private string LoadMacroFromFile(string macro, ConsoleModeContext context)
        {
            macro = macro.ToLowerInvariant();
            var pathForMacros = _collectionProvider.GetSetting(Definitions.SettingPathForMacros);

            if (pathForMacros == null)
            {
                _console.WriteLine("Path for Macros not found. ");
                return(null);
            }

            if (!macro.EndsWith(".macro.json"))
            {
                macro += ".macro.json";
            }

            _console.WriteLine("Executing macro '{0}'...", macro);

            var pathForMacro = Path.Combine(pathForMacros, macro);

            if (!File.Exists(pathForMacro))
            {
                _console.WriteLine("Macro {0} not found!", macro);
            }

            var json = File.ReadAllText(pathForMacro);

            json = ReplaceParameters(json, context);

            return(json);
        }
Exemple #3
0
        public void ExecuteMacroFromFile(string macro, ConsoleModeContext context)
        {
            var json = LoadMacroFromFile(macro, context);

            if (json == null)
            {
                return;
            }

            ExecuteMacro(json, context);
        }
Exemple #4
0
        public void Execute(ConsoleModeContext ctx)
        {
            SetupLanguage();
            _tasks = _consoleTaskLocator.GetTaskHolderList();
            ctx.TaskList.Clear();
            ctx.TaskList.AddRange(_tasks);
            ctx.TaskList.ForEach(th => th.Task.Context = ctx);

            var currentTasks = _tasks;
            var pageInfo     = SetupPageInfo(currentTasks);

            _lastTask = null;
            _lastData = null;

            while (true)
            {
                UtilConsole.Clear();
                ShowWelcomeMessage();
                ShowTasks(currentTasks, pageInfo);
                Console.Write("Select task :>");
                var opt = Console.ReadLine();
                if (string.IsNullOrWhiteSpace(opt))
                {
                    currentTasks = _tasks;
                    pageInfo     = SetupPageInfo(currentTasks);
                    continue;
                }

                CommonTaskHolder selectedTask = null;

                var askForData = true;
                if (opt == "!")
                {
                    if (_lastTask != null)
                    {
                        selectedTask = _lastTask;
                    }
                }
                else if (opt == "!!")
                {
                    if (_lastTask != null)
                    {
                        selectedTask = _lastTask;
                    }
                    askForData = false;
                }
                else if (Regex.IsMatch(opt, "^!\\d+$"))
                {
                    var favoriteMacroKey = opt[1..];
Exemple #5
0
        private void StartConsoleMode(/*InteractiveConsoleOptions options*/)
        {
            _consoleTaskInitializer.Initialize();
            //UtilConsole.CreateDatabaseIfNotFound();
            Environment.CurrentDirectory = Environment.GetEnvironmentVariable("USERPROFILE");

            var ctx = new ConsoleModeContext();

            ctx.TasksToSkipInMacroRecord.AddRange(
                new[]
            {
                "Leftware.Utils.UI.Tasks.Macros.StopRecordMacroConsoleTask",
                "Leftware.Utils.UI.Tasks.General.UserExitConsoleTask"
            }
                );
            _consoleMode.Execute(ctx);
        }
Exemple #6
0
        private static string ReplaceParameters(string json, ConsoleModeContext context)
        {
            var matches = Regex.Matches(json, @"@\{([a-zA-Z0-9_]+)\}");

            foreach (Match match in matches)
            {
                var varName = match.Groups[1].Value;
                if (!context.ExtendedInfo.ContainsKey(varName))
                {
                    var value = UtilConsole.ReadString(string.Format("Value for '{0}'", varName));
                    context.ExtendedInfo[varName] = value;
                }
            }

            foreach (var itm in context.ExtendedInfo)
            {
                json = Regex.Replace(json, "@{" + itm.Key + "}", itm.Value.ToString());
            }

            return(json);
        }