public static OfflineAddressBookMapiProperty Parse(string s)
        {
            OfflineAddressBookMapiPropertyOption offlineAddressBookMapiPropertyOption = OfflineAddressBookMapiPropertyOption.Value;

            if (string.IsNullOrEmpty(s))
            {
                throw new ArgumentNullException();
            }
            string[] array = s.Split(new char[]
            {
                ','
            });
            if (array.Length != 2)
            {
                throw new FormatException(DirectoryStrings.InvalidOABMapiPropertyParseStringException(s));
            }
            string text  = array[0].Trim();
            string text2 = array[1].Trim();

            try
            {
                offlineAddressBookMapiPropertyOption = (OfflineAddressBookMapiPropertyOption)Enum.Parse(typeof(OfflineAddressBookMapiPropertyOption), text2, true);
            }
            catch (ArgumentException)
            {
                throw new ArgumentException(DirectoryStrings.InvalidOABMapiPropertyTypeException(text2));
            }
            return(new OfflineAddressBookMapiProperty(0U, text, offlineAddressBookMapiPropertyOption));
        }
        internal static OfflineAddressBookMapiProperty ParseSerializationString(string fullString)
        {
            string[] array = fullString.Split(new char[]
            {
                ','
            });
            if (array.Length != 3)
            {
                throw new FormatException(DirectoryStrings.InvalidOABMapiPropertyParseStringException(fullString));
            }
            string text = array[0].Trim();
            uint   num  = uint.Parse(array[1].Trim());
            OfflineAddressBookMapiPropertyOption offlineAddressBookMapiPropertyOption = (OfflineAddressBookMapiPropertyOption)Enum.Parse(typeof(OfflineAddressBookMapiPropertyOption), array[2].Trim());

            return(new OfflineAddressBookMapiProperty(num, text, offlineAddressBookMapiPropertyOption));
        }
 public OfflineAddressBookMapiProperty(uint mapiPropTag, string mapiPropName, OfflineAddressBookMapiPropertyOption option)
 {
     this.mapiPropTag  = mapiPropTag;
     this.mapiPropName = mapiPropName;
     this.option       = option;
 }
        public static OfflineAddressBookMapiProperty GetOABMapiProperty(uint mapiPropTag, OfflineAddressBookMapiPropertyOption option)
        {
            string value = string.Empty;

            if (Enum.IsDefined(typeof(PropTag), mapiPropTag))
            {
                value = ((PropTag)mapiPropTag).ToString();
            }
            if (string.IsNullOrEmpty(value) && Enum.IsDefined(typeof(CustomPropTag), mapiPropTag))
            {
                value = ((CustomPropTag)mapiPropTag).ToString();
            }
            int key = OfflineAddressBookMapiProperty.MapiIdFromPropTag(mapiPropTag);

            if (string.IsNullOrEmpty(value))
            {
                OfflineAddressBookMapiProperty.ReadSchema();
                if (OfflineAddressBookMapiProperty.mapiIdToSchemaAttr.ContainsKey(key))
                {
                    ADSchemaAttributeObject adschemaAttributeObject = OfflineAddressBookMapiProperty.mapiIdToSchemaAttr[key];
                    value = adschemaAttributeObject.LdapDisplayName;
                }
            }
            if (string.IsNullOrEmpty(value))
            {
                value = string.Format("0x{0:x8}", mapiPropTag);
            }
            return(new OfflineAddressBookMapiProperty(mapiPropTag, value, option));
        }