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); }
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)); }
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)); }
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); }