Beispiel #1
0
 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 :;
         }
     }
 }
Beispiel #2
0
        // 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;
                }
            }
        }
Beispiel #3
0
 // Token: 0x06000B26 RID: 2854 RVA: 0x0004EF42 File Offset: 0x0004D142
 internal static string GetSipUri(ADRecipient adRecipient)
 {
     return(InstantMessageUtilities.GetSipUri(adRecipient.EmailAddresses));
 }
Beispiel #4
0
 // Token: 0x06000B25 RID: 2853 RVA: 0x0004EF35 File Offset: 0x0004D135
 internal static string GetSipUri(OWAMiniRecipient owaMiniRecipient)
 {
     return(InstantMessageUtilities.GetSipUri(owaMiniRecipient.EmailAddresses));
 }
Beispiel #5
0
 // Token: 0x06000B24 RID: 2852 RVA: 0x0004EF28 File Offset: 0x0004D128
 internal static string GetSipUri(ADUser adUser)
 {
     return(InstantMessageUtilities.GetSipUri(adUser.EmailAddresses));
 }