public JToken Do(ParseContext context, JToken jOptions, JObject obj, string keyWord) { var options = Common.ParseOptions <EvalOptions>(jOptions, context.Serializer).Single(); try { var globals = GlobalsProcessor.Process(_globals, context); var result = CSharpScript.EvaluateAsync(options.Expression, globals: globals, options: ScriptOptions.Default.WithReferences("Microsoft.CSharp")).Result; return(result != null?JToken.FromObject(result) : null); } catch (Exception e) { throw new SettingsException($"Error processing: {options.Expression}", e) { JToken = jOptions }; } }
public JToken Do(ParseContext context, JToken jOptions, JObject obj, string keyWord) { var options = Common.ParseOptions <ConditionOptions>(jOptions, context.Serializer).Single(); try { var globals = GlobalsProcessor.Process(_globals, context); var result = CSharpScript.EvaluateAsync <bool>(options.If, globals: globals, options: ScriptOptions.Default.WithReferences("Microsoft.CSharp")).Result; return(result ? options.Then : options.Else); } catch (Exception e) { throw new SettingsException($"Error processing: {options.If}") { JToken = jOptions }; } }