// Token: 0x06002F0C RID: 12044 RVA: 0x0010EF2C File Offset: 0x0010D12C
 private AnrManager.Options ReadAnrOptions()
 {
     AnrManager.Options options = new AnrManager.Options();
     if (base.IsParameterSet("AB"))
     {
         options.ResolveOnlyFromAddressBook = (bool)base.GetParameter("AB");
     }
     if (base.IsParameterSet("FSoneAnr"))
     {
         options.ResolveAgainstAllContacts = (bool)base.GetParameter("FSoneAnr");
     }
     if (base.IsParameterSet("DefaultRT"))
     {
         options.DefaultRoutingType = (string)base.GetParameter("DefaultRT");
     }
     if (base.IsParameterSet("OnlyDefaultRT"))
     {
         options.OnlyAllowDefaultRoutingType = (bool)base.GetParameter("OnlyDefaultRT");
     }
     if (base.IsParameterSet("RBT"))
     {
         options.RecipientBlockType = (RecipientBlockType)base.GetParameter("RBT");
     }
     return(options);
 }
 public void Resolve()
 {
     ExTraceGlobals.MailCallTracer.TraceDebug((long)this.GetHashCode(), "RecipientWellEventHandler.Resolve");
     AnrManager.Options anrOptions = this.ReadAnrOptions();
     this.ResolveIndividualWell("To", anrOptions);
     this.ResolveIndividualWell("Cc", anrOptions);
     this.ResolveIndividualWell("Bcc", anrOptions);
     this.ResolveIndividualWell("From", anrOptions);
     this.UpdateCache();
 }
        // Token: 0x06002F16 RID: 12054 RVA: 0x0010F73C File Offset: 0x0010D93C
        private void ResolveIndividualWell(string name, AnrManager.Options anrOptions)
        {
            string[] array = (string[])base.GetParameter(name);
            if (array == null)
            {
                return;
            }
            anrOptions.ResolveContactsFirst = base.UserContext.UserOptions.CheckNameInContactsFirst;
            if (name == "From")
            {
                anrOptions.ResolveOnlyFromAddressBook = true;
            }
            this.Writer.Write("<div id=\"{0}\">", name);
            RecipientCache recipientCache = AutoCompleteCache.TryGetCache(OwaContext.Current.UserContext);

            for (int i = 0; i < array.Length; i++)
            {
                RecipientWell.ResolveAndRenderChunk(this.Writer, array[i], null, recipientCache, base.UserContext, anrOptions);
            }
            this.Writer.Write("</div>");
        }
 // Token: 0x06001E91 RID: 7825 RVA: 0x000B01D0 File Offset: 0x000AE3D0
 internal static void ResolveAndRenderChunk(TextWriter writer, string chunk, ArrayList wellNodes, RecipientCache recipientCache, UserContext userContext, AnrManager.Options options)
 {
     if (writer == null)
     {
         throw new ArgumentNullException("writer");
     }
     if (chunk == null)
     {
         throw new ArgumentNullException("chunk");
     }
     if (userContext == null)
     {
         throw new ArgumentNullException("userContext");
     }
     writer.Write("<div id=\"chk\">");
     string[] array = Utilities.ParseRecipientChunk(chunk);
     if (array != null)
     {
         for (int i = 0; i < array.Length; i++)
         {
             string text = array[i].Trim();
             if (text.IndexOf(Globals.HtmlDirectionCharacterString, StringComparison.Ordinal) != -1)
             {
                 text = Utilities.RemoveHTMLDirectionCharacters(text);
             }
             if (text.Length > 0)
             {
                 RecipientAddress  recipientAddress  = AnrManager.ResolveAnrString(text, options, userContext);
                 RecipientWellNode recipientWellNode = new RecipientWellNode(text, null);
                 if (recipientAddress != null)
                 {
                     recipientWellNode.DisplayName       = recipientAddress.DisplayName;
                     recipientWellNode.SmtpAddress       = recipientAddress.SmtpAddress;
                     recipientWellNode.AddressOrigin     = recipientAddress.AddressOrigin;
                     recipientWellNode.RoutingAddress    = recipientAddress.RoutingAddress;
                     recipientWellNode.RoutingType       = recipientAddress.RoutingType;
                     recipientWellNode.RecipientFlags    = recipientAddress.RecipientFlags;
                     recipientWellNode.StoreObjectId     = recipientAddress.StoreObjectId;
                     recipientWellNode.EmailAddressIndex = recipientAddress.EmailAddressIndex;
                     recipientWellNode.ADObjectId        = recipientAddress.ADObjectId;
                     recipientWellNode.SipUri            = recipientAddress.SipUri;
                     recipientWellNode.MobilePhoneNumber = recipientAddress.MobilePhoneNumber;
                 }
                 if ((recipientWellNode.RoutingAddress != null || Utilities.IsMapiPDL(recipientWellNode.RoutingType)) && recipientCache != null)
                 {
                     string itemId = string.Empty;
                     if (recipientWellNode.StoreObjectId != null)
                     {
                         itemId = recipientWellNode.StoreObjectId.ToBase64String();
                     }
                     else if (recipientWellNode.ADObjectId != null)
                     {
                         itemId = Convert.ToBase64String(recipientWellNode.ADObjectId.ObjectGuid.ToByteArray());
                     }
                     recipientCache.AddEntry(recipientWellNode.DisplayName, recipientWellNode.SmtpAddress, recipientWellNode.RoutingAddress, string.Empty, recipientWellNode.RoutingType, recipientWellNode.AddressOrigin, recipientWellNode.RecipientFlags, itemId, recipientWellNode.EmailAddressIndex, recipientWellNode.SipUri, recipientWellNode.MobilePhoneNumber);
                 }
                 recipientWellNode.Render(writer, userContext, RecipientWellNode.RenderFlags.RenderSkinnyHtml);
                 if (wellNodes != null)
                 {
                     wellNodes.Add(recipientWellNode);
                 }
             }
         }
     }
     writer.Write("</div>");
 }
        // Token: 0x06002F13 RID: 12051 RVA: 0x0010F384 File Offset: 0x0010D584
        private void ResolveOneRecipientAndRenderResults(TextWriter output)
        {
            string text = (string)base.GetParameter("n");

            if (text.IndexOf(Globals.HtmlDirectionCharacterString, StringComparison.Ordinal) != -1)
            {
                text = Utilities.RemoveHTMLDirectionCharacters(text);
            }
            List <RecipientAddress> list = new List <RecipientAddress>();

            AnrManager.Options options = this.ReadAnrOptions();
            AnrManager.ResolveOneRecipient(text, base.UserContext, list, options);
            if (list.Count == 0)
            {
                RecipientAddress recipientAddress = AnrManager.ResolveAnrStringToOneOffEmail(text, options);
                if (recipientAddress != null)
                {
                    list.Add(recipientAddress);
                }
            }
            bool flag = false;

            output.Write("new Array(");
            foreach (RecipientAddress recipientAddress2 in list)
            {
                if (flag)
                {
                    output.Write(",");
                }
                else
                {
                    flag = true;
                }
                output.Write("new Recip(\"");
                if (recipientAddress2.DisplayName != null)
                {
                    Utilities.JavascriptEncode(recipientAddress2.DisplayName, output);
                }
                output.Write("\",\"");
                if (recipientAddress2.RoutingAddress != null)
                {
                    Utilities.JavascriptEncode(recipientAddress2.RoutingAddress, output);
                }
                output.Write("\",\"");
                if (recipientAddress2.SmtpAddress != null)
                {
                    Utilities.JavascriptEncode(recipientAddress2.SmtpAddress, output);
                }
                output.Write("\",\"");
                if (recipientAddress2.Alias != null)
                {
                    Utilities.JavascriptEncode(recipientAddress2.Alias, output);
                }
                output.Write("\",\"");
                if (recipientAddress2.RoutingType != null)
                {
                    Utilities.JavascriptEncode(recipientAddress2.RoutingType, output);
                }
                output.Write("\",{0},\"", (int)recipientAddress2.AddressOrigin);
                if (recipientAddress2.ADObjectId != null)
                {
                    Utilities.JavascriptEncode(Convert.ToBase64String(recipientAddress2.ADObjectId.ObjectGuid.ToByteArray()), output);
                }
                else if (recipientAddress2.StoreObjectId != null)
                {
                    Utilities.JavascriptEncode(recipientAddress2.StoreObjectId.ToBase64String(), output);
                }
                output.Write("\",");
                output.Write(recipientAddress2.RecipientFlags);
                output.Write(",");
                output.Write((int)recipientAddress2.EmailAddressIndex);
                output.Write(",\"");
                if (base.UserContext.IsInstantMessageEnabled() && base.UserContext.InstantMessagingType == InstantMessagingTypeOptions.Ocs && recipientAddress2.SipUri != null)
                {
                    Utilities.JavascriptEncode(recipientAddress2.SipUri, output);
                }
                output.Write("\",\"");
                if (base.UserContext.IsSmsEnabled && recipientAddress2.MobilePhoneNumber != null)
                {
                    Utilities.JavascriptEncode(recipientAddress2.MobilePhoneNumber, output);
                }
                output.Write("\")");
            }
            output.Write(")");
        }