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