public object Execute(VariableContext context = null) { var namedList = CartesianProductHelper.BuildNamedVariableList(_iterationExprs, context); if (context == null) { context = new VariableContext(); } var dictInput = new Dictionary <string, Variable> (); foreach (var varList in CartesianProductHelper.IterateDynamicLoop(namedList)) { dictInput.Clear(); foreach (var item in varList) { dictInput.Add(item.Item1, item.Item2); } foreach (var item in dictInput) { if (!context.InputNameDict.TryAdd(item.Key, item.Value)) { context.InputNameDict[item.Key] = item.Value; } } bool sB = (Variable)_satisfyExpr.Execute(context); if ("some" == _operation && sB) { return(new Variable(true)); } if ("every" == _operation && !sB) { return(new Variable(false)); } } if ("every" == _operation) { return(new Variable(true)); } return(new Variable(false)); }
public object Execute(VariableContext context = null) { var namedList = CartesianProductHelper.BuildNamedVariableList(_iterationExprs, context); if (context == null) { context = new VariableContext(); } var rsltLst = new List <Variable> (); var dictInput = new Dictionary <string, Variable> (); foreach (var varList in CartesianProductHelper.IterateDynamicLoop(namedList)) { dictInput.Clear(); foreach (var item in varList) { dictInput.Add(item.Item1, item.Item2); } foreach (var item in dictInput) { if (!context.InputNameDict.TryAdd(item.Key, item.Value)) { context.InputNameDict[item.Key] = item.Value; } } var rslt = (Variable)_returnExpr.Execute(context); rsltLst.Add(rslt); if (!context.InputNameDict.TryAdd("__CpL__", rsltLst)) { context.InputNameDict["__CpL__"] = rsltLst; } } return(new Variable(rsltLst)); }