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
     });
 }