protected override List <TplResult> InnerProcess(List <TplResult> input) { for (int i = 0; i < input.Count; i++) { var allVarsSet = true; //Set the variables in our condition to what we have in this TplResult foreach (var varName in _condition.VarNames) { var value = input[i].ValueOf(varName); if (value == null) { allVarsSet = false; } else { _condition.SetVariableValue(varName, value); } } //Evaluate the condition. If it is false or contains null variables, remove this TplResult if (!allVarsSet || !_condition.EvalAsBool()) { input.RemoveAt(i); i--; } _condition.ClearAllVariables(); } return(input); }
protected override List <TplResult> InnerProcess(List <TplResult> input) { Parallel.ForEach(input, result => { _evaluation.ClearAllVariables(); foreach (var varName in _evaluation.VarNames) { var value = result.ValueOf(varName); if (value == null) { return; } _evaluation.SetVariableValue(varName, value); } result.AddOrUpdateField(NewFieldName, _evaluation.Eval()); }); return(input); }