コード例 #1
0
            public override void Convert(ADRawEntry adObject, IStorePropertyBag contact)
            {
                Util.ThrowOnNullArgument(adObject, "adObject");
                Util.ThrowOnNullArgument(contact, "contact");
                object obj;

                if (adObject.TryGetValueWithoutDefault(ADRecipientSchema.GeoCoordinates, out obj))
                {
                    GeoCoordinates geoCoordinates = (GeoCoordinates)obj;
                    contact[ContactSchema.HomeLatitude]       = geoCoordinates.Latitude;
                    contact[ContactSchema.HomeLongitude]      = geoCoordinates.Longitude;
                    contact[ContactSchema.HomeLocationSource] = LocationSource.Contact;
                    if (geoCoordinates.Altitude != null)
                    {
                        contact[ContactSchema.HomeAltitude] = geoCoordinates.Altitude;
                    }
                    else
                    {
                        ADPersonToContactConverter.Tracer.TraceDebug(0L, "Deleting contact HomeAltitude property it is not found on AD GeoCoordinates property.");
                        contact.Delete(ContactSchema.HomeAltitude);
                    }
                    ADPersonToContactConverter.GeoCoordinatesConverter.locationUriConverter.Convert(adObject, contact);
                    return;
                }
                ADPersonToContactConverter.Tracer.TraceDebug(0L, "Deleting contact location properties since AD GeoCoordinates property not found.");
                contact.Delete(ContactSchema.HomeLatitude);
                contact.Delete(ContactSchema.HomeLongitude);
                contact.Delete(ContactSchema.HomeLocationSource);
                contact.Delete(ContactSchema.HomeAltitude);
                ADPersonToContactConverter.GeoCoordinatesConverter.locationUriConverter.Convert(adObject, contact);
            }
コード例 #2
0
            public override void Convert(ADRawEntry adObject, IStorePropertyBag contact)
            {
                Util.ThrowOnNullArgument(adObject, "adObject");
                Util.ThrowOnNullArgument(contact, "contact");
                object value;

                if (adObject.TryGetValueWithoutDefault(base.ADProperty, out value))
                {
                    contact[StoreObjectSchema.DisplayName] = (contact[ContactBaseSchema.DisplayNameFirstLast] = (contact[ContactBaseSchema.DisplayNameLastFirst] = value));
                    return;
                }
                ADPersonToContactConverter.Tracer.TraceDebug <string>(0L, "Deleting contact DisplayName properties since AD property {0} not found.", base.ADProperty.Name);
                contact.Delete(ContactBaseSchema.DisplayNameFirstLast);
                contact.Delete(ContactBaseSchema.DisplayNameLastFirst);
                contact.Delete(StoreObjectSchema.DisplayName);
            }
コード例 #3
0
 private static void SetOrDeleteValue(IStorePropertyBag propertyBag, NativeStorePropertyDefinition property, LocationSource value)
 {
     if (value == Microsoft.Exchange.Data.Storage.LocationSource.None)
     {
         propertyBag.Delete(property);
         return;
     }
     propertyBag[property] = value;
 }
コード例 #4
0
 private static void SetOrDeleteValue <T>(IStorePropertyBag propertyBag, NativeStorePropertyDefinition property, T?value) where T : struct
 {
     if (value == null)
     {
         propertyBag.Delete(property);
         return;
     }
     propertyBag[property] = value.Value;
 }
コード例 #5
0
 private static void SetOrDeleteValue(IStorePropertyBag propertyBag, NativeStorePropertyDefinition property, string value)
 {
     if (value == null)
     {
         propertyBag.Delete(property);
         return;
     }
     propertyBag[property] = value;
 }
コード例 #6
0
            public override void Convert(ADRawEntry adObject, IStorePropertyBag contact)
            {
                object obj;

                if (adObject.TryGetValueWithoutDefault(base.ADProperty, out obj))
                {
                    CountryInfo countryInfo = (CountryInfo)obj;
                    contact[base.ContactProperty] = countryInfo.LocalizedDisplayName.ToString();
                    return;
                }
                contact.Delete(base.ContactProperty);
            }
コード例 #7
0
            public override void Convert(ADRawEntry adObject, IStorePropertyBag contact)
            {
                Util.ThrowOnNullArgument(adObject, "adObject");
                Util.ThrowOnNullArgument(contact, "contact");
                string sipUri = ADPersonToContactConverter.GetSipUri(adObject);

                if (sipUri != null)
                {
                    contact[base.ContactProperty] = sipUri;
                    return;
                }
                ADPersonToContactConverter.Tracer.TraceDebug <string>(0L, "Deleting contact property {0} since AD Object has no SIP addresses.", base.ContactProperty.Name);
                contact.Delete(base.ContactProperty);
            }
コード例 #8
0
            public override void Convert(ADRawEntry adObject, IStorePropertyBag contact)
            {
                Util.ThrowOnNullArgument(adObject, "adObject");
                Util.ThrowOnNullArgument(contact, "contact");
                object obj;

                if (adObject.TryGetValueWithoutDefault(base.ADProperty, out obj))
                {
                    contact[base.ContactProperty] = obj;
                    ADPersonToContactConverter.Tracer.TraceDebug <string, string, object>(0L, "Setting contact property {0} with value from AD property {1}. Value: {2}", base.ADProperty.Name, base.ContactProperty.Name, obj);
                    return;
                }
                ADPersonToContactConverter.Tracer.TraceDebug <string, string>(0L, "Deleting contact property {0} since AD property {1} not found.", base.ContactProperty.Name, base.ADProperty.Name);
                contact.Delete(base.ContactProperty);
            }
コード例 #9
0
            public override void Convert(ADRawEntry adObject, IStorePropertyBag contact)
            {
                Util.ThrowOnNullArgument(adObject, "adObject");
                Util.ThrowOnNullArgument(contact, "contact");
                string text = null;
                object obj;

                if (adObject.TryGetValueWithoutDefault(ADRecipientSchema.EmailAddresses, out obj))
                {
                    ProxyAddressCollection proxyAddressCollection = obj as ProxyAddressCollection;
                    if (proxyAddressCollection != null)
                    {
                        foreach (ProxyAddress proxyAddress in proxyAddressCollection)
                        {
                            SmtpProxyAddress smtpProxyAddress = proxyAddress as SmtpProxyAddress;
                            if (smtpProxyAddress != null)
                            {
                                if (smtpProxyAddress.IsPrimaryAddress)
                                {
                                    text = smtpProxyAddress.SmtpAddress;
                                    break;
                                }
                                if (text == null)
                                {
                                    text = smtpProxyAddress.SmtpAddress;
                                }
                            }
                        }
                    }
                }
                if (text != null)
                {
                    contact[base.ContactProperty] = text;
                    return;
                }
                ADPersonToContactConverter.Tracer.TraceDebug <string>(0L, "Deleting contact property {0} since AD Object has no email addresses.", base.ContactProperty.Name);
                contact.Delete(base.ContactProperty);
            }