private static void CopyIncrementalCollection(PropertyInfo incrementalProperty, PropertyDefinition addedProperty, PropertyDefinition removedProperty, FacadeBase storage, PolicyConfigurationBase baseConfiguration) { object obj = null; object obj2 = null; UnifiedPolicyStorageFactory.TryReadPropertyValue(storage, addedProperty, out obj); UnifiedPolicyStorageFactory.TryReadPropertyValue(storage, removedProperty, out obj2); if (obj != null || obj2 != null) { IncrementalAttributeBase incrementalCollection = UnifiedPolicyStorageFactory.GetIncrementalCollection(incrementalProperty, true, (MultiValuedPropertyBase)obj, (MultiValuedPropertyBase)obj2); incrementalProperty.GetSetMethod().Invoke(baseConfiguration, new IncrementalAttributeBase[] { incrementalCollection }); } }
private static void CopyPropertyFromStorage(PropertyInfo property, object propertyValue, PolicyConfigurationBase baseConfiguration) { if (UnifiedPolicyStorageFactory.IsIncrementalAttribute(property)) { IncrementalAttributeBase incrementalAttribute = UnifiedPolicyStorageFactory.GetIncrementalAttribute(property, true, propertyValue); property.GetSetMethod().Invoke(baseConfiguration, new IncrementalAttributeBase[] { incrementalAttribute }); return; } property.GetSetMethod().Invoke(baseConfiguration, new object[] { propertyValue }); }
private static IncrementalAttributeBase GetIncrementalCollection(PropertyInfo property, bool isChanged, MultiValuedPropertyBase addedValues, MultiValuedPropertyBase removedValues) { IncrementalAttributeBase incrementalAttributeBase = (IncrementalAttributeBase)Activator.CreateInstance(typeof(IncrementalCollection <>).MakeGenericType(new Type[] { property.PropertyType.GenericTypeArguments[0] })); if (isChanged) { IList list = (IList)Activator.CreateInstance(typeof(List <>).MakeGenericType(new Type[] { property.PropertyType.GenericTypeArguments[0] })); IList list2 = (IList)Activator.CreateInstance(typeof(List <>).MakeGenericType(new Type[] { property.PropertyType.GenericTypeArguments[0] })); if (addedValues != null) { foreach (object value in ((IEnumerable)addedValues)) { list.Add(value); } } if (removedValues != null) { foreach (object value2 in ((IEnumerable)removedValues)) { list2.Add(value2); } } return((IncrementalAttributeBase)Activator.CreateInstance(typeof(IncrementalCollection <>).MakeGenericType(new Type[] { property.PropertyType.GenericTypeArguments[0] }), new IList[] { list, list2 })); } return((IncrementalAttributeBase)Activator.CreateInstance(typeof(IncrementalCollection <>).MakeGenericType(new Type[] { property.PropertyType.GenericTypeArguments[0] }))); }
private static void CopyPropertyToStorage(PropertyDefinition schemaProperty, PropertyInfo property, IPropertyBag storage, PolicyConfigurationBase baseConfiguration) { object obj = property.GetGetMethod().Invoke(baseConfiguration, null); if (UnifiedPolicyStorageFactory.IsIncrementalAttribute(property) || UnifiedPolicyStorageFactory.IsIncrementalCollection(property)) { IncrementalAttributeBase incrementalAttributeBase = (IncrementalAttributeBase)obj; if (incrementalAttributeBase != null && incrementalAttributeBase.Changed) { UnifiedPolicyStorageFactory.StoreValue(storage, schemaProperty, incrementalAttributeBase.GetObjectValue()); return; } } else { UnifiedPolicyStorageFactory.StoreValue(storage, schemaProperty, obj); } }
private static void InitializeIncrementalAttributes(PolicyConfigurationBase baseConfiguration, IEnumerable <PropertyInfo> allProperties) { foreach (PropertyInfo propertyInfo in from p in allProperties where UnifiedPolicyStorageFactory.IsIncrementalAttribute(p) select p) { IncrementalAttributeBase incrementalAttribute = UnifiedPolicyStorageFactory.GetIncrementalAttribute(propertyInfo, false, null); propertyInfo.GetSetMethod().Invoke(baseConfiguration, new IncrementalAttributeBase[] { incrementalAttribute }); } foreach (PropertyInfo propertyInfo2 in from p in allProperties where UnifiedPolicyStorageFactory.IsIncrementalCollection(p) select p) { IncrementalAttributeBase incrementalCollection = UnifiedPolicyStorageFactory.GetIncrementalCollection(propertyInfo2, false, null, null); propertyInfo2.GetSetMethod().Invoke(baseConfiguration, new IncrementalAttributeBase[] { incrementalCollection }); } }