public void AdaptFieldsCreatedFromTransforms() { foreach (var method in Transform.ProducerSet()) { while (new TransformFieldsToParametersAdapter(this).Adapt(method) > 0) { new TransformFieldsMoveAdapter(this).Adapt(method); } } }
public void MergeParameters() { foreach (var field in Fields) { foreach (var transform in field.Transforms.Where(t => t.Parameter != string.Empty && !Transform.ProducerSet().Contains(t.Method))) { if (transform.Parameter == "*") { foreach (var f in Fields.Where(f => !f.System)) { if (transform.Parameters.All(p => p.Field != f.Alias)) { transform.Parameters.Add(GetParameter(Alias, f.Alias, f.Type)); } } } else { transform.Parameters.Add(GetParameter(Alias, transform.Parameter)); } transform.Parameter = string.Empty; if (transform.Parameters.Count == 1 && transform.Parameters.First().Field == "*") { foreach (var f in Fields.Where(f => !f.System)) { transform.Parameters.Add(GetParameter(Alias, f.Alias, f.Type)); } } } } var index = 0; foreach (var calculatedField in CalculatedFields) { foreach (var transform in calculatedField.Transforms.Where(t => t.Parameter != string.Empty && !Transform.ProducerSet().Contains(t.Method))) { if (transform.Parameter == "*") { foreach (var field in GetAllFields().Where(f => !f.System)) { if (transform.Parameters.All(p => p.Field != field.Alias)) { transform.Parameters.Add(GetParameter(Alias, field.Alias, field.Type)); } } var thisField = calculatedField.Name; foreach (var calcField in CalculatedFields.Take(index).Where(cf => cf.Name != thisField)) { transform.Parameters.Add(GetParameter(Alias, calcField.Alias, calcField.Type)); } } else { transform.Parameters.Add(GetParameter(Alias, transform.Parameter)); } transform.Parameter = string.Empty; if (transform.Parameters.Count == 1 && transform.Parameters.First().Field == "*") { foreach (var f in GetAllFields().Where(f => !f.System)) { transform.Parameters.Add(GetParameter(Alias, f.Alias, f.Type)); } } } index++; } }