public override void Input(BsonDataRow inputRow) { var newRow = new BsonDataRow(); foreach (var column in _transformColumnDefinitions) { if (column.TransformFunction != null) { var newVal = column.TransformFunction(inputRow.GetValue(column.SourceColumnName)); newRow.SetValue(column.TargetColumnName, newVal); } else { newRow.SetValue(column.TargetColumnName, inputRow.GetValue(column.SourceColumnName)); } } foreach (var column in _calculationColumnDefinitions) { var calVal = column.CalculateFunction(inputRow); newRow.SetValue(column.TargetColumnName, calVal); } inputRow.CombineWith(newRow); Output(inputRow); }