Пример #1
0
        /// <summary>
        /// Alias for RenderScriptAsync
        /// </summary>
        public static async Task <string> EvaluateScriptAsync(this ScriptContext context, string script, Dictionary <string, object> args = null)
        {
            var pageResult = new PageResult(context.SharpScriptPage(script));

            args.Each((x, y) => pageResult.Args[x] = y);
            return(await pageResult.RenderScriptAsync());
        }
Пример #2
0
        /// <summary>
        /// Evaluate #Script and return value
        /// </summary>
        public static object Evaluate(this ScriptContext context, string script, Dictionary <string, object> args = null)
        {
            var pageResult = new PageResult(context.SharpScriptPage(script));

            args.Each((x, y) => pageResult.Args[x] = y);

            if (!pageResult.EvaluateResult(out var returnValue))
            {
                throw new NotSupportedException(ScriptContextUtils.ErrorNoReturn);
            }

            return(ScriptLanguage.UnwrapValue(returnValue));
        }
Пример #3
0
        /// <summary>
        /// Evaluate #Script and convert returned value to T asynchronously
        /// </summary>
        public static async Task <object> EvaluateAsync(this ScriptContext context, string script, Dictionary <string, object> args = null)
        {
            var pageResult = new PageResult(context.SharpScriptPage(script));

            args.Each((x, y) => pageResult.Args[x] = y);

            var ret = await pageResult.EvaluateResultAsync();

            if (!ret.Item1)
            {
                throw new NotSupportedException(ScriptContextUtils.ErrorNoReturn);
            }

            return(ScriptLanguage.UnwrapValue(ret.Item2));
        }
Пример #4
0
        /// <summary>
        /// Alias for RenderScript
        /// </summary>
        public static string EvaluateScript(this ScriptContext context, string script, Dictionary <string, object> args, out ScriptException error)
        {
            var pageResult = new PageResult(context.SharpScriptPage(script));

            args.Each((x, y) => pageResult.Args[x] = y);
            try {
                var output = pageResult.Result;
                error = pageResult.LastFilterError != null ? new ScriptException(pageResult) : null;
                return(output);
            }
            catch (Exception e)
            {
                pageResult.LastFilterError = e;
                error = new ScriptException(pageResult);
                return(null);
            }
        }