/// <inheritdoc /> public override async Task <object> Execute(WorkflowInstanceState state, CancellationToken token) { CompiledScript script = await compiler.CompileScriptAsync(Name); IDictionary <string, object> arguments = await Arguments.EvaluateArguments(state.Variables, token); state.Logger.Info($"Executing script '{script.Name}'", string.Join("\n", arguments.Select(p => $"{p.Key}: {p.Value}"))); return(await script.Instance.ExecuteAsync(new VariableProvider(state.Variables, arguments), token)); }
/// <inheritdoc /> public async Task <WorkableTask> Execute(long id, int?revision = null, IDictionary <string, object> variables = null, TimeSpan?wait = null) { CompiledScript script = await scriptcompiler.CompileScriptAsync(id, revision); IDictionary <string, object> runtimevariables = await variables.TranslateVariables(scriptcompiler, ScriptLanguage.NCScript); WorkableTask scripttask = scriptinstances.CreateTask(WorkableType.Script, script.Id, script.Revision, script.Name, runtimevariables); try { return(await Execute(script.Instance, scripttask, runtimevariables, wait)); } catch (Exception e) { scripttask.Log.Add(e.ToString()); scripttask.Status = TaskStatus.Failure; await scriptinstances.FinishTask(scripttask.Id); } return(scripttask); }
/// <inheritdoc /> public object Execute(IDictionary <string, object> arguments) { arguments.TranslateDictionary(); arguments["log"] = logger; CompiledScript script = compiler.CompileScriptAsync(name, revision).GetAwaiter().GetResult(); object result = script.Instance.Execute(arguments); return(result); }
/// <inheritdoc /> protected override async Task <IScript> LoadScript() { return((await compiler.CompileScriptAsync(scriptid)).Instance); }
/// <inheritdoc /> public object Execute(IDictionary <string, object> arguments) { arguments["log"] = logger; return(compiler.CompileScriptAsync(name, revision).GetAwaiter().GetResult().Instance.Execute(arguments)); }