Beispiel #1
0
        public async Task ExecuteRequestAsync(IMiddlerContext middlerContext)
        {
            IScriptEngine scriptEngine = _serviceProvider.GetRequiredNamedService <IScriptEngine>(Parameters.Language);

            var compile = scriptEngine.NeedsCompiledScript && (!string.IsNullOrEmpty(Parameters.SourceCode) &&
                                                               string.IsNullOrWhiteSpace(Parameters.CompiledCode));


            if (compile)
            {
                CompileScriptIfNeeded();
            }

            var scriptContextMethods = new ScriptContextMethods();
            //scriptContextMethods.SendResponse = () =>
            //{
            //    Console.WriteLine("Test von Action");
            //    scriptEngine.Stop();
            //};

            var scriptContext = new ScriptContext(middlerContext, scriptContextMethods);

            scriptContext.Terminating = Terminating;


            scriptEngine.SetValue("context", scriptContext);

            //scriptEngine.SetValue("m", new Environment(middlerContext.RequestServices.GetService<IVariablesRepository>()));


            try
            {
                await scriptEngine.ExecuteAsync(scriptEngine.NeedsCompiledScript?Parameters.CompiledCode : Parameters.SourceCode);

                //SendResponse(middlerContext.Response, scriptContext);
            }
            catch (Exception e)
            {
                throw e;
                //await httpContext.BadRequest(e.GetBaseException().Message);
            }

            Terminating = scriptContext.Terminating;
        }
Beispiel #2
0
        public async Task ExecuteRequestAsync(IMiddlerContext middlerContext)
        {
            IScriptEngine scriptEngine = GetScriptEngine();



            var scriptContextMethods = new ScriptContextMethods();

            scriptContextMethods.SendResponse = () =>
            {
                Console.WriteLine("Test von Action");
                scriptEngine.Stop();
            };

            var scriptContext = new ScriptContext(middlerContext, scriptContextMethods);

            scriptContext.Terminating = Terminating;

            scriptEngine.Initialize();
            scriptEngine.SetValue("context", scriptContext);

            scriptEngine.SetValue("m", new Environment(middlerContext.RequestServices.GetService <VariableStore>()));


            try
            {
                await scriptEngine.Execute(scriptEngine.NeedsCompiledScript?Parameters.CompiledCode : Parameters.SourceCode);

                //SendResponse(middlerContext.Response, scriptContext);
            }
            catch (Exception e)
            {
                throw e;
                //await httpContext.BadRequest(e.GetBaseException().Message);
            }

            Terminating = scriptContext.Terminating;
        }