Exemplo n.º 1
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => args[0] != null && !(args[0] is JValue) && args[0].GetType().IsValueType == false && args[0].GetType() != typeof(string)));
 }
Exemplo n.º 2
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => FunctionUtils.CultureInvariantDoubleConvert(args[0])));
 }
Exemplo n.º 3
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => DateTime.UtcNow.ToString(args.Count == 1 ? args[0].ToString() : FunctionUtils.DefaultDateTimeFormat, CultureInfo.InvariantCulture)));
 }
Exemplo n.º 4
0
        // Generate a new lookup function based on one lookup function
        private EvaluatorLookup CustomizedEvaluatorLookup(EvaluatorLookup baseLookup)
        => (string name) =>
        {
            var standardFunction = baseLookup(name);

            if (standardFunction != null)
            {
                return(standardFunction);
            }

            if (name.StartsWith("lg.", StringComparison.Ordinal))
            {
                name = name.Substring(3);
            }

            var templateName = ParseTemplateName(name).pureTemplateName;

            if (this.TemplateMap.ContainsKey(templateName))
            {
                return(new ExpressionEvaluator(templateName, FunctionUtils.Apply(this.TemplateEvaluator(name)), ReturnType.Object, this.ValidTemplateReference));
            }

            const string template = "template";

            if (name.Equals(template, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(template, FunctionUtils.Apply(this.TemplateFunction()), ReturnType.Object, this.ValidateTemplateFunction));
            }

            const string fromFile = "fromFile";

            if (name.Equals(fromFile, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(fromFile, FunctionUtils.Apply(this.FromFile()), ReturnType.String, FunctionUtils.ValidateUnaryString));
            }

            const string activityAttachment = "ActivityAttachment";

            if (name.Equals(activityAttachment, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(
                           activityAttachment,
                           FunctionUtils.Apply(this.ActivityAttachment()),
                           ReturnType.Object,
                           (expr) => FunctionUtils.ValidateOrder(expr, null, ReturnType.Object, ReturnType.String)));
            }

            const string isTemplate = "isTemplate";

            if (name.Equals(isTemplate, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(isTemplate, FunctionUtils.Apply(this.IsTemplate()), ReturnType.Boolean, FunctionUtils.ValidateUnaryString));
            }

            const string expandText = "expandText";

            if (name.Equals(expandText, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(expandText, FunctionUtils.Apply(this.ExpandText()), ReturnType.Object, FunctionUtils.ValidateUnaryString));
            }

            return(null);
        };
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(args[0].ToString().Substring(args[0].ToString().IndexOf(",", StringComparison.Ordinal) + 1))), FunctionUtils.VerifyString));
 }
Exemplo n.º 6
0
        // Generate a new lookup function based on one lookup function
        private EvaluatorLookup CustomizedEvaluatorLookup(EvaluatorLookup baseLookup, bool isExpander)
        => (string name) =>
        {
            var standardFunction = baseLookup(name);

            if (standardFunction != null)
            {
                return(standardFunction);
            }

            var pointIndex = name.IndexOf('.');
            if (pointIndex > 0)
            {
                var alias = name.Substring(0, pointIndex);
                if (Templates.NamedReferences.ContainsKey(alias))
                {
                    var realTemplateName = name.Substring(pointIndex + 1);
                    return(new ExpressionEvaluator(realTemplateName, FunctionUtils.Apply(this.EvaluateWithTemplates(realTemplateName, Templates.NamedReferences[alias])), ReturnType.Object));
                }
            }

            if (name.StartsWith("lg.", StringComparison.Ordinal))
            {
                name = name.Substring(3);
            }

            if (this.TemplateMap.ContainsKey(name))
            {
                if (isExpander)
                {
                    return(new ExpressionEvaluator(name, FunctionUtils.Apply(this.TemplateExpander(name)), ReturnType.Object, this.ValidTemplateReference));
                }
                else
                {
                    return(new ExpressionEvaluator(name, FunctionUtils.Apply(this.TemplateEvaluator(name)), ReturnType.Object, this.ValidTemplateReference));
                }
            }

            const string template = "template";

            if (name.Equals(template, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(template, FunctionUtils.Apply(this.TemplateFunction()), ReturnType.Object, this.ValidateTemplateFunction));
            }

            const string fromFile = "fromFile";

            if (name.Equals(fromFile, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(fromFile, FunctionUtils.Apply(this.FromFile()), ReturnType.String, ValidateFromFile));
            }

            const string activityAttachment = "ActivityAttachment";

            if (name.Equals(activityAttachment, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(
                           activityAttachment,
                           FunctionUtils.Apply(this.ActivityAttachment()),
                           ReturnType.Object,
                           (expr) => FunctionUtils.ValidateOrder(expr, null, ReturnType.Object, ReturnType.String)));
            }

            const string isTemplate = "isTemplate";

            if (name.Equals(isTemplate, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(isTemplate, FunctionUtils.Apply(this.IsTemplate()), ReturnType.Boolean, FunctionUtils.ValidateUnaryString));
            }

            const string expandText = "expandText";

            if (name.Equals(expandText, StringComparison.Ordinal))
            {
                return(new ExpressionEvaluator(expandText, FunctionUtils.Apply(this.ExpandText()), ReturnType.Object, FunctionUtils.ValidateUnaryString));
            }

            return(null);
        };
Exemplo n.º 7
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => Convert.FromBase64String(args[0].ToString()), FunctionUtils.VerifyString));
 }
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => new List <object>(args)));
 }
Exemplo n.º 9
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => "data:text/plain;charset=utf-8;base64," + Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(args[0].ToString())), FunctionUtils.VerifyString));
 }
Exemplo n.º 10
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => Environment.NewLine));
 }
Exemplo n.º 11
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => args[0] is bool));
 }
Exemplo n.º 12
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => Guid.NewGuid().ToString()));
 }
Exemplo n.º 13
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => Convert.ToInt64(args[0])));
 }
Exemplo n.º 14
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => Convert.ToInt64(args[0], CultureInfo.InvariantCulture)));
 }
Exemplo n.º 15
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(args[0].ToString())), FunctionUtils.VerifyString));
 }
Exemplo n.º 16
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => args[0] != null && args[0].GetType() == typeof(string)));
 }
Exemplo n.º 17
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => JsonConvert.SerializeObject(args[0]).TrimStart('"').TrimEnd('"')));
 }
Exemplo n.º 18
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => Uri.UnescapeDataString(args[0].ToString()), FunctionUtils.VerifyString));
 }
Exemplo n.º 19
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => Extensions.IsNumber(args[0]) && FunctionUtils.CultureInvariantDoubleConvert(args[0]) % 1 != 0));
 }
Exemplo n.º 20
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => EvalAddOrdinal(Convert.ToInt32(args[0])), FunctionUtils.VerifyInteger));
 }
Exemplo n.º 21
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => FunctionUtils.ToBinary(args[0].ToString()), FunctionUtils.VerifyString));
 }
Exemplo n.º 22
0
        private Templates InjectToExpressionFunction()
        {
            var totalTempaltes = new List <Templates> {
                this
            }.Union(References);

            foreach (var curTemplates in totalTempaltes)
            {
                var globalFuncs = curTemplates.GetGlobalFunctionTable(curTemplates.Options);
                foreach (var templateName in globalFuncs)
                {
                    if (curTemplates.Any(u => u.Name == templateName))
                    {
                        var newGlobalName = $"{curTemplates.Namespace}.{templateName}";
                        Expression.Functions.Add(newGlobalName, new ExpressionEvaluator(newGlobalName, FunctionUtils.Apply(this.GlobalTemplateFunction(templateName)), ReturnType.Object));
                    }
                }
            }

            return(this);
        }
 private static EvaluateExpressionDelegate Evaluator(Func <IReadOnlyList <object>, object> function)
 {
     return(FunctionUtils.Apply(function, FunctionUtils.VerifyStringOrNull));
 }
Exemplo n.º 24
0
 private static EvaluateExpressionDelegate Evaluator()
 {
     return(FunctionUtils.Apply(args => EvalCoalesce(args.ToArray())));
 }