Example #1
0
        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
                      };
            }
        }