private static void AddADRecipients(ADRawEntry[] adRecipients, AnrManager.Options options, List <RecipientAddress> addresses) { if (adRecipients != null) { foreach (ADRawEntry adrawEntry in adRecipients) { RecipientType recipientType = (RecipientType)adrawEntry[ADRecipientSchema.RecipientType]; if (recipientType == RecipientType.UserMailbox || recipientType == RecipientType.MailUniversalDistributionGroup || recipientType == RecipientType.MailUniversalSecurityGroup || recipientType == RecipientType.MailNonUniversalGroup || recipientType == RecipientType.MailUser || recipientType == RecipientType.MailContact || recipientType == RecipientType.DynamicDistributionGroup || recipientType == RecipientType.PublicFolder) { bool flag = Utilities.IsADDistributionList((MultiValuedProperty <string>)adrawEntry[ADObjectSchema.ObjectClass]); string text = Utilities.NormalizePhoneNumber((string)adrawEntry[ADOrgPersonSchema.MobilePhone]); if (!flag || !Utilities.IsFlagSet((int)options.RecipientBlockType, 1)) { bool isRoom = DirectoryAssistance.IsADRecipientRoom((RecipientDisplayType?)adrawEntry[ADRecipientSchema.RecipientDisplayType]); RecipientAddress recipientAddress = null; if (!flag && options.IsDefaultRoutingType("MOBILE")) { if (!string.IsNullOrEmpty(text)) { recipientAddress = new RecipientAddress(); recipientAddress.RoutingType = "MOBILE"; recipientAddress.RoutingAddress = text; } else if (options.OnlyAllowDefaultRoutingType) { goto IL_1BD; } } if (recipientAddress == null) { recipientAddress = new RecipientAddress(); recipientAddress.Alias = (string)adrawEntry[ADRecipientSchema.Alias]; recipientAddress.RoutingAddress = (string)adrawEntry[ADRecipientSchema.LegacyExchangeDN]; recipientAddress.RoutingType = "EX"; recipientAddress.SmtpAddress = adrawEntry[ADRecipientSchema.PrimarySmtpAddress].ToString(); } recipientAddress.AddressOrigin = AddressOrigin.Directory; recipientAddress.ADObjectId = (ADObjectId)adrawEntry[ADObjectSchema.Id]; recipientAddress.IsRoom = isRoom; recipientAddress.DisplayName = (string)adrawEntry[ADRecipientSchema.DisplayName]; recipientAddress.IsDistributionList = flag; recipientAddress.RecipientType = recipientType; recipientAddress.SipUri = InstantMessageUtilities.GetSipUri((ProxyAddressCollection)adrawEntry[ADRecipientSchema.EmailAddresses]); recipientAddress.MobilePhoneNumber = text; addresses.Add(recipientAddress); } } IL_1BD :; } } }
// Token: 0x06000B30 RID: 2864 RVA: 0x0004F208 File Offset: 0x0004D408 public static void GetItemIMInfo(OwaStoreObjectId itemId, bool getNormalizedSubject, UserContext userContext, out string displayName, out string emailAddress, out string sipUri, out string subject) { if (itemId == null) { throw new ArgumentNullException("itemId"); } if (userContext == null) { throw new ArgumentNullException("userContext"); } PropertyDefinition[] prefetchProperties = new PropertyDefinition[] { MessageItemSchema.SenderDisplayName, getNormalizedSubject ? ItemSchema.NormalizedSubject : ItemSchema.Subject, MessageItemSchema.SenderEmailAddress, MessageItemSchema.SenderAddressType }; sipUri = string.Empty; using (Item item = Utilities.GetItem <Item>(userContext, itemId, prefetchProperties)) { string text = string.Empty; object obj = item.TryGetProperty(MessageItemSchema.SenderAddressType); if (!(obj is PropertyError)) { text = (string)obj; } emailAddress = string.Empty; obj = item.TryGetProperty(MessageItemSchema.SenderEmailAddress); if (!(obj is PropertyError)) { emailAddress = (string)obj; } if (!string.IsNullOrEmpty(text) && !string.IsNullOrEmpty(emailAddress)) { if (string.CompareOrdinal(text, "EX") == 0) { try { IRecipientSession recipientSession = Utilities.CreateADRecipientSession(ConsistencyMode.IgnoreInvalid, userContext); ADRecipient adrecipient = recipientSession.FindByLegacyExchangeDN(emailAddress); if (adrecipient != null) { sipUri = InstantMessageUtilities.GetSipUri(adrecipient); } goto IL_12E; } catch (NonUniqueRecipientException ex) { ExTraceGlobals.InstantMessagingTracer.TraceDebug <string>(0L, "IntantMessageUtilities.GetItemIMInfo: NonUniqueRecipientException was thrown by User: {0}", ex.Message); goto IL_12E; } } if (string.CompareOrdinal(text, "SMTP") == 0 && emailAddress != null) { sipUri = ContactUtilities.GetContactRecipientIMAddress(emailAddress, userContext, true); } } IL_12E: subject = string.Empty; obj = item.TryGetProperty(getNormalizedSubject ? ItemSchema.NormalizedSubject : ItemSchema.Subject); if (!(obj is PropertyError)) { subject = (string)obj; } displayName = string.Empty; obj = item.TryGetProperty(MessageItemSchema.SenderDisplayName); if (!(obj is PropertyError)) { displayName = (string)obj; } } }
// Token: 0x06000B26 RID: 2854 RVA: 0x0004EF42 File Offset: 0x0004D142 internal static string GetSipUri(ADRecipient adRecipient) { return(InstantMessageUtilities.GetSipUri(adRecipient.EmailAddresses)); }
// Token: 0x06000B25 RID: 2853 RVA: 0x0004EF35 File Offset: 0x0004D135 internal static string GetSipUri(OWAMiniRecipient owaMiniRecipient) { return(InstantMessageUtilities.GetSipUri(owaMiniRecipient.EmailAddresses)); }
// Token: 0x06000B24 RID: 2852 RVA: 0x0004EF28 File Offset: 0x0004D128 internal static string GetSipUri(ADUser adUser) { return(InstantMessageUtilities.GetSipUri(adUser.EmailAddresses)); }