Ejemplo n.º 1
0
        public static EvaluationContext.EvaluationInfo TryEvaluateExpression(this IQueryElement expr, EvaluationContext context)
        {
            if (!context.TryGetValue(expr, out var info))
            {
                var canBeEvaluated =
                    TryEvaluateExpressionInternal(expr, context, out var result, out var errorMessage);
                info = new EvaluationContext.EvaluationInfo(canBeEvaluated, result, errorMessage);
                context.Register(expr, info);
                return(info);
            }

            return(info !);
        }
Ejemplo n.º 2
0
        public static bool TryEvaluateExpression(this IQueryElement expr, EvaluationContext context, out object?result,
                                                 out string?errorMessage)
        {
            if (!context.TryGetValue(expr, out var info))
            {
                var canBeEvaluated = TryEvaluateExpressionInternal(expr, context, out result, out errorMessage);
                info = new EvaluationContext.EvaluationInfo(canBeEvaluated, result, errorMessage);
                context.Register(expr, info);

                return(info.IsEvaluated);
            }

            result       = info !.Value;
            errorMessage = info.ErrorMessage;
            return(info.IsEvaluated);
        }