private void ExecuteBooScript(string script) { var isScript = _isScriptCheckBox.IsChecked ?? false; var context = BooUtil.GetCompilerContext(script, isScript); foreach (var error in context.Errors) { NaroMessage.Show(error.ToString()); } if (context.Errors.Count != 0) { return; } var assembly = context.GeneratedAssembly; Ensure.IsNotNull(assembly); var currentGraph = GetCurrentActionGraph(_actionsGraph); if (!isScript) { BooUtil.ExecuteBooProgram("Script", context, currentGraph); } else { BooUtil.ExecuteBooScript("Script", context, currentGraph); currentGraph[InputNames.View].Send(NotificationNames.RefreshView); currentGraph[InputNames.UiElementsItem].Send(NotificationNames.RebuildTreeView); } }
public void ExecuteFileName(object sender, EventArgs eventArgs) { var document = _document; var fileName = _fileName; try { if (_isScript) { // Set the script location/execution path BooUtil.ExecuteBooScript(_actionsGraph, fileName); } else { BooUtil.ExecuteBooProgram(_actionsGraph, fileName); } } catch (Exception ex) { Ensure.IsTrue(false, "Error executing file: " + fileName + " Exception: " + ex.Message); } _remote.IncrementProgress(fileName); try { document.Undo(); } catch (Exception ex) { Ensure.IsTrue(false, "Error on undo file: " + fileName + " Exception: " + ex.Message); } }
public static void ExecuteDirectory(string directoryName, ActionsGraph actionsGraph) { var sortedFileNames = GetBooFileList(directoryName); var document = actionsGraph.InputContainer[InputNames.Document].GetData(NotificationNames.GetValue).Get <Document>(); foreach (var fileName in sortedFileNames) { try { // Set the script location/execution path BooUtil.ExecuteBooScript(actionsGraph, fileName); } catch (Exception ex) { Assert.IsTrue(false, "Error executing file: " + fileName + " Exception: " + ex.Message); } try { document.Undo(); } catch (Exception ex) { Assert.IsTrue(false, "Error on undo file: " + fileName + " Exception: " + ex.Message); } } }
public void BuildScript() { var scriptLines = new List <string> { "Line(0, 0, 0, 100, 100, 0);" }; var context = BooUtil.CompileScript(scriptLines); var assembly = context.GeneratedAssembly; var instance = BooUtil.CallMethodFromAssembly(assembly, BooUtil.BooScrptClassName, "SetInternalData", new object[] { _actionsGraph }); BooUtil.CallInstanceMethod(assembly, BooUtil.BooScrptClassName, instance, "Do"); _document.Commit(" Script execute"); }
public void Execute(object sender, EventArgs eventArgs) { var script = _window._textEditor.Text; var isScript = _window._isScriptCheckBox.IsChecked ?? false; var context = BooUtil.GetCompilerContext(script, isScript); var isCompilingSuccesfully = context.Errors.Count == 0; _window.executeBtn.IsEnabled = isCompilingSuccesfully; if (isCompilingSuccesfully) { _window._errorTextArea.Text = CodeCompiledSuccesfully; return; } var error = context.Errors[0]; _window._errorTextArea.Text = error.ToString(); }