Exemple #1
0
 void AdaptFieldsCreatedFromTransforms()
 {
     foreach (var method in Transform.Producers())
     {
         while (new TransformFieldsToParametersAdapter(this).Adapt(method) > 0)
         {
             new TransformFieldsMoveAdapter(this).Adapt(method);
         }
     }
 }
Exemple #2
0
        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++;
            }
        }
Exemple #3
0
        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++;
            }
        }