/// <summary> /// Evaluate the link /// </summary> /// <param name="env"></param> /// <returns>evaluation result true if a link condition has been satisfied. </returns> public async Task <bool> Evaluate(IProcessRuntimeEnvironment env) { if (_script == null) { return(await Task.FromResult(true)); } int val = await _script.Execute(env); return(val == 1); }
public async Task <ExecutionResult> ExecuteAsync(IProcessRuntimeEnvironment env) { try { int result = await _script.Execute(env); return(new ExecutionResult(result == 1 ? StepExecutionStatusEnum.Ready : StepExecutionStatusEnum.Failed)); } catch (AggregateException ex) { return(new ExecutionResult(StepExecutionStatusEnum.Failed, null, ex.Flatten().Message)); } catch (Exception ex) { return(new ExecutionResult(StepExecutionStatusEnum.Failed, null, ex.Message)); } }
/// <summary> /// Validates the on enter on exit criteria. /// </summary> /// <param name="env">The env.</param> /// <param name="rt">The rt.</param> /// <param name="f">The f.</param> /// <returns></returns> private async Task <AsyncValidationResult> ValidateOnEnterOnExit(IProcessRuntimeEnvironment env, CsScriptRuntime rt, Func <VariableMapDefinition, bool> f) { if (!IsCompiled) { return(new AsyncValidationResult($"The step Id {_stepDef.StepId} is not compiled.")); } string[] errors; if (!TryValidateVariables(env, _stepDef.VariablesMap?.Where(f) ?? new VariableMapDefinition[] { }, out errors)) { return(new AsyncValidationResult(errors)); } if (rt == null) { return(new AsyncValidationResult()); } int result = await rt.Execute(env); return(result == 1 ? new AsyncValidationResult() : new AsyncValidationResult("Script validation fails")); }