Esempio n. 1
0
        private object EvalScript(IScriptExpression expression, Dictionary<string, object> modules, ContextParameterList parameters)
        {
            var argParameters = new ScriptParameterList();
            foreach (var m in modules)
                argParameters.Add(new ScriptParameter(m.Key, m.Value.GetType(), m.Value));
            foreach (var p in parameters)
                argParameters.Add(new ScriptParameter(p.Name, p.Type, p.Value));

            return _scriptService.Eval(expression, argParameters);
        }
Esempio n. 2
0
        public void It_should_be_possible_to_eval_script_invoking_a_module()
        {
            ScriptService target = new ScriptService();

            ScriptParameterList parameters = new ScriptParameterList();
            parameters.Add(new ScriptParameter("Test", typeof(TestModule), new TestModule()));

            IScriptExpression exp;

            exp = target.Parse("Test.Name", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("Davide", target.Eval(exp, parameters));

            exp = target.Parse("Test[\"k1\"]", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("k1value", target.Eval(exp, parameters));

            exp = target.Parse("Test.Name + \" \" + Test.DateOfBirth.Year.ToString()", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("Davide 1981", target.Eval(exp, parameters));

            exp = target.Parse("Test.SayHello()", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("Hello Davide", target.Eval(exp, parameters));
        }
Esempio n. 3
0
        public void It_should_be_possible_to_eval_script_system_method()
        {
            ScriptService target = new ScriptService();

            var parameters = new ScriptParameterList();
            parameters.Add(new ScriptParameter("name", typeof(string), "mondo"));

            IScriptExpression exp;

            exp = target.Parse("string.Format(\"ciao {0}\", name)", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("ciao mondo", target.Eval(exp, parameters));
        }
Esempio n. 4
0
        private IScriptExpression ParseScript(string script, Modules.ModuleDefinitionList modules, PageParameterList parameters)
        {
            var argParameters = new ScriptParameterList();
            foreach (var m in modules)
                argParameters.Add(new ScriptParameter(m.Name, m.Component.Type));
            foreach (var p in parameters)
                argParameters.Add(new ScriptParameter(p.Name, p.Value.ValueType));

            return _scriptService.Parse(script, argParameters);
        }