Exemple #1
0
        private static RecipientAddress ResolveAnrStringFromAD(UserContext userContext, AnrManager.NameParsingResult parsingResult, AnrManager.Options options, AnrManager.NextOperation nextOperation)
        {
            List <RecipientAddress> list = new List <RecipientAddress>();

            AnrManager.GetNamesByAnrFromAD(userContext, parsingResult, options, list);
            if (list.Count == 1)
            {
                if (!AnrManager.IsMobileNumberInput(parsingResult, options) || AnrManager.IsMobileAddressExactMatch(parsingResult, list[0]))
                {
                    return(list[0]);
                }
                return(null);
            }
            else
            {
                if (list.Count > 1)
                {
                    return(null);
                }
                if (nextOperation != null)
                {
                    return(nextOperation());
                }
                return(null);
            }
        }
Exemple #2
0
 public static void ResolveOneRecipient(string name, UserContext userContext, List <RecipientAddress> addresses, AnrManager.Options options)
 {
     if (name == null)
     {
         throw new ArgumentNullException("name");
     }
     if (userContext == null)
     {
         throw new ArgumentNullException("userContext");
     }
     if (addresses == null)
     {
         throw new ArgumentNullException("addresses");
     }
     AnrManager.NameParsingResult parsingResult = AnrManager.ParseNameBeforeAnr(name, options);
     if (!options.ResolveOnlyFromAddressBook && userContext.IsFeatureEnabled(Feature.Contacts))
     {
         AnrManager.GetNamesByAnrFromContacts(userContext, parsingResult, options, addresses);
     }
     AnrManager.GetNamesByAnrFromAD(userContext, parsingResult, options, addresses);
     if (AnrManager.IsMobileNumberInput(parsingResult, options) && addresses.Count > 0)
     {
         bool flag = false;
         foreach (RecipientAddress address in addresses)
         {
             if (AnrManager.IsMobileAddressExactMatch(parsingResult, address))
             {
                 flag = true;
                 break;
             }
         }
         if (!flag)
         {
             RecipientAddress recipientAddress = AnrManager.ResolveAnrStringToOneOffEmail(name, options);
             if (recipientAddress != null)
             {
                 addresses.Add(recipientAddress);
             }
         }
     }
     addresses.Sort();
 }