/// <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);
        }
Пример #2
0
            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));
                }
            }
Пример #3
0
        /// <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"));
        }