private IEnumerable <PropertyChangeMetadata.PropertyGroup> GetOverriddenGroupsFromBitMapOverride() { int bitmapLength = this.masterPropertyOverrideGroupsBitArray.Length; int referenceGroupsLength = PropertyChangeMetadata.ListOfTrackedPropertyGroups.Length; int groupCount; if (bitmapLength < referenceGroupsLength) { ExTraceGlobals.CalendarSeriesTracer.TraceError(0L, "PropertyChangeMetadata::GetOverridenGroups. Bitmap is shorter than minimum raw metadata size."); groupCount = bitmapLength; } else { groupCount = referenceGroupsLength; if (referenceGroupsLength < bitmapLength) { ExTraceGlobals.CalendarSeriesTracer.TraceError(0L, "PropertyChangeMetadata::GetOverridenGroups. Bitmap truncated. Not able to read serialized bits till the end."); } } for (int groupIndex = 0; groupIndex < groupCount; groupIndex++) { PropertyChangeMetadata.PropertyGroup group = PropertyChangeMetadata.ListOfTrackedPropertyGroups[groupIndex]; if (group != null && this.masterPropertyOverrideGroupsBitArray[groupIndex]) { yield return(group); } } yield break; }
static PropertyChangeMetadata() { PropertyChangeMetadata.PropertyNameToPropertyAndIndex = new Dictionary <string, PropertyChangeMetadata.PropertyAndIndex>(); for (int i = 0; i < PropertyChangeMetadata.ListOfTrackedPropertyGroups.Length; i++) { PropertyChangeMetadata.PropertyGroup propertyGroup = PropertyChangeMetadata.ListOfTrackedPropertyGroups[i]; if (propertyGroup != null) { StorePropertyDefinition storeProperty = propertyGroup.StoreProperty; if (storeProperty != null && !(storeProperty is NativeStorePropertyDefinition)) { PropertyChangeMetadata.CheckAndAddProperty(storeProperty.Name, storeProperty, propertyGroup, i); } else if (propertyGroup.IsBitField) { PropertyChangeMetadata.CheckAndAddProperty(propertyGroup.Name, null, propertyGroup, i); } foreach (NativeStorePropertyDefinition nativeStorePropertyDefinition in PropertyChangeMetadata.ListOfTrackedPropertyGroups[i]) { PropertyChangeMetadata.CheckAndAddProperty(nativeStorePropertyDefinition.Name, nativeStorePropertyDefinition, propertyGroup, i); } } } }
private static void CheckAndAddProperty(string name, StorePropertyDefinition property, PropertyChangeMetadata.PropertyGroup propertyGroup, int index) { if (propertyGroup.IsBitField) { PropertyFlags propertyFlags = propertyGroup.ContainerStoreProperty.PropertyFlags; } PropertyChangeMetadata.PropertyNameToPropertyAndIndex.Add(name, new PropertyChangeMetadata.PropertyAndIndex { Property = property, Index = index }); }