private bool DuplicateConfiguredAttributesDefined()
        {
            if (this.ConfiguredAttributes.Count > 0)
            {
                return(false);
            }
            MultiValuedProperty <int> multiValuedProperty  = (MultiValuedProperty <int>) this.propertyBag[OfflineAddressBookSchema.ANRProperties];
            MultiValuedProperty <int> multiValuedProperty2 = (MultiValuedProperty <int>) this.propertyBag[OfflineAddressBookSchema.DetailsProperties];
            MultiValuedProperty <int> multiValuedProperty3 = (MultiValuedProperty <int>) this.propertyBag[OfflineAddressBookSchema.TruncatedProperties];
            Dictionary <int, OfflineAddressBookMapiProperty> dictionary = new Dictionary <int, OfflineAddressBookMapiProperty>();

            foreach (int num in multiValuedProperty)
            {
                if (num != 0)
                {
                    OfflineAddressBookMapiProperty oabmapiProperty = OfflineAddressBookMapiProperty.GetOABMapiProperty((uint)num, OfflineAddressBookMapiPropertyOption.ANR);
                    if (dictionary.ContainsKey(oabmapiProperty.MapiID))
                    {
                        return(true);
                    }
                    dictionary.Add(oabmapiProperty.MapiID, oabmapiProperty);
                }
            }
            foreach (int num2 in multiValuedProperty2)
            {
                if (num2 != 0)
                {
                    OfflineAddressBookMapiProperty oabmapiProperty = OfflineAddressBookMapiProperty.GetOABMapiProperty((uint)num2, OfflineAddressBookMapiPropertyOption.Value);
                    if (dictionary.ContainsKey(oabmapiProperty.MapiID))
                    {
                        return(true);
                    }
                    dictionary.Add(oabmapiProperty.MapiID, oabmapiProperty);
                }
            }
            foreach (int num3 in multiValuedProperty3)
            {
                if (num3 != 0)
                {
                    OfflineAddressBookMapiProperty oabmapiProperty = OfflineAddressBookMapiProperty.GetOABMapiProperty((uint)num3, OfflineAddressBookMapiPropertyOption.Indicator);
                    if (dictionary.ContainsKey(oabmapiProperty.MapiID))
                    {
                        return(true);
                    }
                    dictionary.Add(oabmapiProperty.MapiID, oabmapiProperty);
                }
            }
            return(false);
        }
        internal void ResolveConfiguredAttributes()
        {
            MultiValuedProperty <int> multiValuedProperty  = (MultiValuedProperty <int>) this.propertyBag[OfflineAddressBookSchema.ANRProperties];
            MultiValuedProperty <int> multiValuedProperty2 = (MultiValuedProperty <int>) this.propertyBag[OfflineAddressBookSchema.DetailsProperties];
            MultiValuedProperty <int> multiValuedProperty3 = (MultiValuedProperty <int>) this.propertyBag[OfflineAddressBookSchema.TruncatedProperties];
            MultiValuedProperty <OfflineAddressBookMapiProperty> multiValuedProperty4 = (MultiValuedProperty <OfflineAddressBookMapiProperty>) this.propertyBag[OfflineAddressBookSchema.ConfiguredAttributes];
            bool isReadOnly = multiValuedProperty4.IsReadOnly;

            if (isReadOnly)
            {
                multiValuedProperty4 = new MultiValuedProperty <OfflineAddressBookMapiProperty>();
            }
            foreach (int num in multiValuedProperty)
            {
                if (num != 0)
                {
                    OfflineAddressBookMapiProperty oabmapiProperty = OfflineAddressBookMapiProperty.GetOABMapiProperty((uint)num, OfflineAddressBookMapiPropertyOption.ANR);
                    multiValuedProperty4.Add(oabmapiProperty);
                }
            }
            foreach (int num2 in multiValuedProperty2)
            {
                if (num2 != 0)
                {
                    OfflineAddressBookMapiProperty oabmapiProperty = OfflineAddressBookMapiProperty.GetOABMapiProperty((uint)num2, OfflineAddressBookMapiPropertyOption.Value);
                    if (!multiValuedProperty4.Contains(oabmapiProperty))
                    {
                        multiValuedProperty4.Add(oabmapiProperty);
                    }
                }
            }
            foreach (int num3 in multiValuedProperty3)
            {
                if (num3 != 0)
                {
                    OfflineAddressBookMapiProperty oabmapiProperty = OfflineAddressBookMapiProperty.GetOABMapiProperty((uint)num3, OfflineAddressBookMapiPropertyOption.Indicator);
                    if (!multiValuedProperty4.Contains(oabmapiProperty))
                    {
                        multiValuedProperty4.Add(oabmapiProperty);
                    }
                }
            }
            multiValuedProperty4.ResetChangeTracking();
            if (isReadOnly)
            {
                this.propertyBag.SetField(OfflineAddressBookSchema.ConfiguredAttributes, multiValuedProperty4);
            }
        }