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); } } }
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); }
public void ExecuteMacroFromFile(string macro, ConsoleModeContext context) { var json = LoadMacroFromFile(macro, context); if (json == null) { return; } ExecuteMacro(json, context); }
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..];
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); }
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); }