Esempio n. 1
0
        public async Task <IActionResult> ExecuteRuleYaml([FromBody] ExecuteRuleYamlFromUriRequest request)
        {
            return(StatusCode(500, new ServerError500Response(new NotImplementedException())));

            var controller = new YamlScriptController();
            var response   = new ExecuteRuleYamlFromUriResponse();
            var parameters = request.ClientParameters.Adapt <IParametersCollection>();

            controller.QuestionCallback = (FormulaExpressionContext sender, QuestionArgs args) =>
            {
            };

            var downloadResult = request.Endpoint.DownloadYaml();
            var result         = controller.Parse(downloadResult.Content);

            // map the parsing result.


            if (result.IsError)
            {
                return(StatusCode(400, response));
            }
            ;
            var executionResult = new ExecutionResult(ref parameters) as IExecutionResult;

            controller.ExecuteWorkflow(ref parameters, ref executionResult);

            return(StatusCode(200, new ExecuteRuleYamlFromUriResponse()));
        }
Esempio n. 2
0
        public async Task <IActionResult> ExecuteRuleYaml([FromBody] ExecuteRuleYamlFromUriRequest request)
        {
            var controller = new YamlScriptController();
            var response   = new ExecuteRuleYamlFromUriResponse();
            var parameters = request.ClientParameters.Adapt <IParametersCollection>();
            IExecutionResult executionResult = null;

            controller.QuestionCallback = (FormulaExpressionContext sender, QuestionArgs args) =>
            {
                executionResult.Questions = args;
            };

            var downloadResult = request.Endpoint.DownloadYaml();
            var result         = controller.Parse(downloadResult.Content);

            if (result.IsError)
            {
                return(StatusCode(400, response));
            }
            ;
            executionResult = new ExecutionResult(ref parameters);
            try
            {
                executionResult = controller.ExecuteWorkflow(ref parameters, ref executionResult);
            }
            catch (UnresolvedException)
            {
            }

            if (executionResult.IsError)
            {
                response.ExecutionStatus = ExecuteRuleYamlResultTypes.SyntaxError;
                return(StatusCode(400, response));
            }
            response.ServerParameters = executionResult.Parameters.Adapt <IEnumerable <ServerParameter> >();
            return(StatusCode(200, new ExecuteRuleYamlFromUriResponse()));
        }