void AdaptFieldsCreatedFromTransforms() { foreach (var method in Transform.Producers()) { 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.Producers().Contains(t.Method))) { if (transform.Parameter == "*") { Error("You can not reference all parameters within an entity's field: {0}", field.Name); } else { transform.Parameters.Add(GetParameter(Alias, transform.Parameter)); } transform.Parameter = string.Empty; } } var index = 0; foreach (var calculatedField in CalculatedFields) { foreach (var transform in calculatedField.Transforms.Where(t => t.Parameter != string.Empty && !Transform.Producers().Contains(t.Method))) { if (transform.Parameter == "*") { foreach (var field in Fields) { 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; } index++; } }
void PreValidateMergeParameters() { foreach (var entity in Entities) { entity.MergeParameters(); } var index = 0; foreach (var field in CalculatedFields) { foreach (var transform in field.Transforms.Where(t => t.Parameter != string.Empty && !Transform.Producers().Contains(t.Method))) { if (transform.Parameter == ALL) { foreach (var entity in Entities) { foreach (var entityField in entity.GetAllFields().Where(f => f.Output)) { transform.Parameters.Add(GetParameter(entity.Alias, entityField.Alias, entityField.Type)); } } var thisField = field; foreach (var cf in CalculatedFields.Take(index).Where(cf => cf.Name != thisField.Name)) { transform.Parameters.Add(GetParameter(string.Empty, cf.Alias, cf.Type)); } } else { if (transform.Parameter.IndexOf('.') > 0) { var split = transform.Parameter.Split(new[] { '.' }); transform.Parameters.Add(GetParameter(split[0], split[1])); } else { transform.Parameters.Add(GetParameter(transform.Parameter)); } } transform.Parameter = string.Empty; } index++; } }