예제 #1
0
        public static PropertyReference ConvertTransformPropertyToComposite(PropertyReference propertyReference)
        {
            if (propertyReference == null)
            {
                return((PropertyReference)null);
            }
            int num = -1;

            for (int index = 0; index < propertyReference.Count; ++index)
            {
                if (PlatformTypes.Transform.IsAssignableFrom((ITypeId)propertyReference[index].PropertyType))
                {
                    num = index;
                    break;
                }
            }
            if (num == -1)
            {
                return((PropertyReference)null);
            }
            ReferenceStep compositeProperty = TransformPropertyLookup.GetCorrespondingCompositeProperty(propertyReference);

            if (compositeProperty == null)
            {
                return((PropertyReference)null);
            }
            ReferenceStep[] steps = new ReferenceStep[num + 2];
            for (int index = 0; index <= num; ++index)
            {
                steps[index] = propertyReference.ReferenceSteps[index];
            }
            steps[num + 1] = compositeProperty;
            return(PropertyReference.CreateNewPropertyReferenceFromStepsWithoutCopy(steps));
        }
예제 #2
0
 private static PropertyReference UpdatePropertyReference(PropertyReference propertyReference, ReferenceStep referenceStep, ReferenceStep filteredStep)
 {
     if (filteredStep == null)
     {
         return((PropertyReference)null);
     }
     if (filteredStep != referenceStep && PlatformTypeHelper.GetPropertyType((IProperty)filteredStep).IsAssignableFrom(PlatformTypeHelper.GetPropertyType((IProperty)referenceStep)))
     {
         ReferenceStep[] steps = new ReferenceStep[propertyReference.Count];
         steps[0] = filteredStep;
         for (int index = 1; index < propertyReference.Count; ++index)
         {
             steps[index] = propertyReference[index];
         }
         propertyReference = PropertyReference.CreateNewPropertyReferenceFromStepsWithoutCopy(steps);
     }
     return(propertyReference);
 }