public static string ReplaceJScriptTags(Match match) { string input = match.Value; input = input.Replace("[jScript]", ""); input = input.Replace("[/jScript]", ""); input = input.Replace("´", "'"); try { input = JsEvaluator.GetType().InvokeMember("Eval", System.Reflection.BindingFlags.InvokeMethod, null, JsEvaluator, new object[] { input }).ToString(); } catch (Exception ex) //logged { Logger.WriteException(ex); //Assembly a = Assembly.LoadWithPartialName("SenseNet.Storage"); //Type t = a.GetType("SenseNet.Services.Instrumentation.ExceptionLogger"); //var r = Activator.CreateInstance(t, new object[] { ex }); //MethodInfo m = t.GetMethod("LogToEventLog", BindingFlags.Public | BindingFlags.Instance); //m.Invoke(r, null); if (input.IndexOf("DateTime.Now.ToString(\"yyyy'/'MM'/'dd\")", StringComparison.Ordinal) != -1) // DateTime.Now.ToString("yyyy´/´MM´/´dd") { return(DateTime.Now.ToString("yyyy'/'MM'/'dd")); } } return(input); }
public void EvalTest() { var eval = new JsEvaluator(); var b = eval.EvalBool("5 > 4"); var d = eval.EvalDecimal("2.5"); var o = eval.Eval("new Date()"); var t = eval.EvalDateTime("new Date('2018/01/01 12:00:00')"); }
private async Task <object> Evaluate() { var sr = new StreamReader(await Loader.GetStream()); var content = sr.ReadToEnd(); var result = JsEvaluator.Evaluate(content); return(Task.FromResult(result)); }
public static string ReplaceJScriptTags(Match match) { string input = match.Value; input = input.Replace("[jScript]", ""); input = input.Replace("[/jScript]", ""); input = input.Replace("´", "'"); try { input = JsEvaluator.GetType().InvokeMember("Eval", System.Reflection.BindingFlags.InvokeMethod, null, JsEvaluator, new object[] { input }).ToString(); } catch (Exception ex) // logged { SnLog.WriteException(ex); if (input.IndexOf("DateTime.UtcNow.ToString(\"yyyy'/'MM'/'dd\")", StringComparison.Ordinal) != -1) { return(DateTime.UtcNow.ToString("yyyy'/'MM'/'dd")); } } return(input); }
public async Task BeforeUninstall(SetupContext context) { JsEvaluator.Init(); var result = await Evaluate(); }