Exemple #1
0
        public static RecipientAddress ResolveAnrStringToOneOffEmail(string name, AnrManager.Options options)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            RecipientAddress recipientAddress = null;
            Participant      participant;

            if (AnrManager.TryParseParticipant(name, options, out participant) && (!options.OnlyAllowDefaultRoutingType || options.IsDefaultRoutingType(participant.RoutingType)))
            {
                recipientAddress                   = new RecipientAddress();
                recipientAddress.DisplayName       = participant.DisplayName;
                recipientAddress.AddressOrigin     = RecipientAddress.ToAddressOrigin(participant);
                recipientAddress.RoutingAddress    = (AnrManager.IsMobileNumberInput(participant, options) ? participant.DisplayName : participant.EmailAddress);
                recipientAddress.RoutingType       = participant.RoutingType;
                recipientAddress.SmtpAddress       = ((participant.RoutingType == "SMTP") ? participant.EmailAddress : null);
                recipientAddress.MobilePhoneNumber = ((participant.RoutingType == "MOBILE") ? participant.EmailAddress : null);
                StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;
                if (storeParticipantOrigin != null)
                {
                    recipientAddress.StoreObjectId     = storeParticipantOrigin.OriginItemId;
                    recipientAddress.EmailAddressIndex = storeParticipantOrigin.EmailAddressIndex;
                }
            }
            return(recipientAddress);
        }
Exemple #2
0
 // Token: 0x0600036F RID: 879 RVA: 0x00013FA4 File Offset: 0x000121A4
 private void ExpandPDL(RecipientAddress address, List <ResolvedRecipient> recipients)
 {
     Participant[] array;
     try
     {
         array = DistributionList.ExpandDeep(this.mailboxSession, address.StoreObjectId);
     }
     catch (ObjectNotFoundException)
     {
         return;
     }
     foreach (Participant participant in array)
     {
         StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;
         if (storeParticipantOrigin != null)
         {
             StoreObjectId    originItemId = storeParticipantOrigin.OriginItemId;
             RecipientAddress recipientAddress;
             try
             {
                 recipientAddress = this.ConstructStoreRecipientAddress(participant, participant.DisplayName, originItemId);
             }
             catch (ObjectNotFoundException)
             {
                 goto IL_FF;
             }
             if (recipientAddress != null)
             {
                 recipients.Add(new ResolvedRecipient(recipientAddress));
             }
         }
         else
         {
             RecipientAddress recipientAddress2 = new RecipientAddress();
             recipientAddress2.RoutingType    = participant.RoutingType;
             recipientAddress2.SmtpAddress    = (participant.TryGetProperty(ParticipantSchema.SmtpAddress) as string);
             recipientAddress2.DisplayName    = participant.DisplayName;
             recipientAddress2.RoutingAddress = participant.EmailAddress;
             if (!string.IsNullOrEmpty(recipientAddress2.RoutingType) && participant.RoutingType == "EX")
             {
                 recipientAddress2.AddressOrigin = AddressOrigin.Directory;
             }
             else
             {
                 recipientAddress2.AddressOrigin = AddressOrigin.OneOff;
             }
             if (recipientAddress2.SmtpAddress != null)
             {
                 recipients.Add(new ResolvedRecipient(recipientAddress2));
             }
         }
         IL_FF :;
     }
 }
        private void RenderSmtpParticipant(TextWriter writer, Participant participant)
        {
            StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;

            if (storeParticipantOrigin != null)
            {
                StoreObjectId originItemId = storeParticipantOrigin.OriginItemId;
                this.RenderMemberWithIcon(writer, participant.DisplayName, originItemId.ToBase64String(), ListViewContents.ReadItemType.Contact, ThemeFileId.Contact, false);
                return;
            }
            writer.Write("<td class=\"txvl pdlncn\">");
            base.RenderEmail(writer, participant.DisplayName, participant.EmailAddress, participant.RoutingType, null, EmailAddressIndex.None);
            writer.Write("</td>");
        }
        private void RenderPDLParticipant(TextWriter writer, Participant participant)
        {
            StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;

            if (storeParticipantOrigin != null)
            {
                StoreObjectId originItemId = storeParticipantOrigin.OriginItemId;
                this.RenderMemberWithIcon(writer, participant.DisplayName, originItemId.ToBase64String(), ListViewContents.ReadItemType.ContactDistributionList, ThemeFileId.DistributionListOther, true);
                return;
            }
            writer.Write("<td class=\"txvl pdlncn\"><img src=\"");
            base.UserContext.RenderThemeFileUrl(writer, ThemeFileId.DistributionListOther);
            writer.Write("\"><b>");
            Utilities.HtmlEncode(participant.DisplayName, writer);
            writer.Write("</b></td>");
        }
        private static Persona CreatePersonaFromDistributionListMember(MailboxSession session, DistributionListMember member, out bool isADMember)
        {
            isADMember = false;
            Participant participant = member.Participant;
            Persona     persona     = new Persona();

            persona.DisplayName               = participant.DisplayName;
            persona.ImAddress                 = participant.GetValueOrDefault <string>(ParticipantSchema.SipUri, null);
            persona.EmailAddress              = new EmailAddressWrapper();
            persona.EmailAddress.RoutingType  = participant.RoutingType;
            persona.EmailAddress.EmailAddress = participant.EmailAddress;
            persona.EmailAddress.Name         = participant.DisplayName;
            StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;
            bool       flag       = member.MainEntryId is ADParticipantEntryId;
            PersonType personType = PersonType.Unknown;

            if (storeParticipantOrigin != null)
            {
                personType = ((string.CompareOrdinal(participant.RoutingType, "MAPIPDL") == 0) ? PersonType.DistributionList : PersonType.Person);
                if (session != null)
                {
                    persona.EmailAddress.ItemId = IdConverter.GetItemIdFromStoreId(storeParticipantOrigin.OriginItemId, new MailboxId(session));
                }
                persona.EmailAddress.EmailAddressIndex = storeParticipantOrigin.EmailAddressIndex.ToString();
                if (personType == PersonType.DistributionList)
                {
                    persona.EmailAddress.MailboxType = MailboxHelper.MailboxTypeType.PrivateDL.ToString();
                }
                else if (personType == PersonType.Person)
                {
                    persona.EmailAddress.MailboxType = MailboxHelper.MailboxTypeType.Contact.ToString();
                }
            }
            else if (flag)
            {
                isADMember = true;
            }
            else
            {
                persona.EmailAddress.MailboxType = MailboxHelper.MailboxTypeType.OneOff.ToString();
            }
            persona.PersonaType = PersonaTypeConverter.ToString(personType);
            return(persona);
        }
        // Token: 0x060000BF RID: 191 RVA: 0x00006CF0 File Offset: 0x00004EF0
        protected override void RenderContents(TextWriter writer, RecipientWellType type, RecipientWellNode.RenderFlags flags)
        {
            if (!this.HasRecipients(type))
            {
                return;
            }
            AdRecipientBatchQuery     adRecipientBatchQuery = new AdRecipientBatchQuery(this.GetRecipientCollection(type), this.UserContext);
            IEnumerator <Participant> recipientCollection   = this.GetRecipientCollection(type);

            RecipientWellNode.RenderFlags renderFlags = flags & ~RecipientWellNode.RenderFlags.RenderCommas;
            bool flag = true;
            RecipientItemType recipientItemType = ItemRecipientWell.GetRecipientItemType(type);
            bool isWebPartRequest = OwaContext.Current.UserContext.IsWebPartRequest;
            int  num = 0;

            while (recipientCollection.MoveNext())
            {
                Participant            participant                = recipientCollection.Current;
                int                    recipientFlags             = 0;
                ADObjectId             adObjectId                 = null;
                int                    readItemType               = 1;
                string                 smtpAddressAndADObjectInfo = ItemRecipientWell.GetSmtpAddressAndADObjectInfo(participant, adRecipientBatchQuery, out adObjectId, out recipientFlags, out readItemType);
                StoreObjectId          storeObjectId              = null;
                StoreParticipantOrigin storeParticipantOrigin     = participant.Origin as StoreParticipantOrigin;
                if (storeParticipantOrigin != null)
                {
                    storeObjectId = storeParticipantOrigin.OriginItemId;
                }
                string idString = ItemRecipientWell.BuildRecipientIdString(recipientItemType, num++);
                if (RecipientWellNode.Render(this.UserContext, writer, participant.DisplayName, smtpAddressAndADObjectInfo, participant.EmailAddress, participant.RoutingType, RecipientAddress.ToAddressOrigin(participant), recipientFlags, readItemType, recipientItemType, adObjectId, storeObjectId, renderFlags, idString, isWebPartRequest) && flag)
                {
                    flag = false;
                    if ((flags & RecipientWellNode.RenderFlags.RenderCommas) != RecipientWellNode.RenderFlags.None)
                    {
                        renderFlags |= RecipientWellNode.RenderFlags.RenderCommas;
                    }
                }
            }
        }
Exemple #7
0
 // Token: 0x06002AD1 RID: 10961 RVA: 0x000F0DC8 File Offset: 0x000EEFC8
 protected void RenderMemberList()
 {
     foreach (DistributionListMember distributionListMember in this.distributionList)
     {
         if (!(distributionListMember.Participant == null))
         {
             Participant participant = distributionListMember.Participant;
             base.Response.Write("<tr><td class='adDlMmbrsLft'>");
             string                 itemType               = null;
             string                 itemId                 = null;
             string                 emailAddress           = participant.EmailAddress;
             string                 smtpAddress            = Utilities.GetParticipantProperty <string>(participant, ParticipantSchema.SmtpAddress, null);
             AddressOrigin          addressOrigin          = AddressOrigin.Unknown;
             StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;
             bool flag = distributionListMember.MainEntryId is ADParticipantEntryId;
             if (storeParticipantOrigin != null)
             {
                 if (string.CompareOrdinal(participant.RoutingType, "MAPIPDL") == 0)
                 {
                     base.UserContext.RenderThemeImage(base.Response.Output, ThemeFileId.DistributionListOther);
                     itemType = "IPM.DistList";
                 }
                 else
                 {
                     base.UserContext.RenderThemeImage(base.Response.Output, ThemeFileId.Contact);
                     itemType = "IPM.Contact";
                 }
                 itemId        = storeParticipantOrigin.OriginItemId.ToBase64String();
                 addressOrigin = AddressOrigin.Store;
             }
             else if (flag)
             {
                 bool participantProperty = Utilities.GetParticipantProperty <bool>(participant, ParticipantSchema.IsDistributionList, false);
                 if (participantProperty)
                 {
                     base.UserContext.RenderThemeImage(base.Response.Output, ThemeFileId.DistributionListOther);
                     itemType = "ADDistList";
                 }
                 else
                 {
                     base.UserContext.RenderThemeImage(base.Response.Output, ThemeFileId.DistributionListUser);
                     itemType = "AD.RecipientType.User";
                 }
                 addressOrigin = AddressOrigin.Directory;
             }
             else
             {
                 base.UserContext.RenderThemeImage(base.Response.Output, ThemeFileId.DistributionListUser);
             }
             if (string.CompareOrdinal(participant.RoutingType, "EX") == 0)
             {
                 ADRawEntry adrawEntry = this.FindRecipientInAD(participant.EmailAddress);
                 if (adrawEntry != null)
                 {
                     smtpAddress = ((SmtpAddress)adrawEntry[ADRecipientSchema.PrimarySmtpAddress]).ToString();
                     if (flag)
                     {
                         itemId = Utilities.GetBase64StringFromADObjectId((ADObjectId)adrawEntry[ADObjectSchema.Id]);
                     }
                 }
             }
             base.Response.Write("</td><td class=\"pdlNm adDlMmbrsRt\">");
             if (!string.IsNullOrEmpty(participant.DisplayName))
             {
                 this.RenderMemberNameLink(itemType, itemId, participant.DisplayName);
             }
             base.Response.Write("</td><td class=adDlMmbrsRt>");
             if (!string.IsNullOrEmpty(emailAddress))
             {
                 this.RenderMemberEmailLink(emailAddress, participant.DisplayName, smtpAddress, participant.RoutingType, addressOrigin, (storeParticipantOrigin != null) ? storeParticipantOrigin.OriginItemId : null, (storeParticipantOrigin != null) ? storeParticipantOrigin.EmailAddressIndex : EmailAddressIndex.None);
             }
             base.Response.Write("</td></tr>");
         }
     }
 }
        public void ExpandDistributionList()
        {
            ExTraceGlobals.MailCallTracer.TraceDebug((long)this.GetHashCode(), "RecipientWellEventHandler.ExpandDistributionList");
            RecipientInfo[]    array = (RecipientInfo[])base.GetParameter("Recips");
            List <Participant> list  = new List <Participant>();

            foreach (RecipientInfo recipientInfo in array)
            {
                if (recipientInfo.StoreObjectId == null || !Utilities.IsMapiPDL(recipientInfo.RoutingType))
                {
                    throw new OwaEventHandlerException("The requested recipient is not personal distribution list");
                }
                list.AddRange(DistributionList.ExpandDeep(base.UserContext.MailboxSession, recipientInfo.StoreObjectId));
            }
            using (List <Participant> .Enumerator enumerator = list.GetEnumerator())
            {
                AdRecipientBatchQuery adRecipientBatchQuery = new AdRecipientBatchQuery(enumerator, base.UserContext);
                bool flag = false;
                foreach (Participant participant in list)
                {
                    string            smtpAddress       = null;
                    string            sipUri            = null;
                    ADObjectId        adObjectId        = null;
                    StoreObjectId     storeObjectId     = null;
                    EmailAddressIndex emailAddressIndex = EmailAddressIndex.None;
                    string            mobilePhoneNumber = null;
                    if (participant.RoutingType == "EX")
                    {
                        ADRecipient adRecipient = adRecipientBatchQuery.GetAdRecipient(participant.EmailAddress);
                        if (adRecipient != null)
                        {
                            smtpAddress       = adRecipient.PrimarySmtpAddress.ToString();
                            adObjectId        = adRecipient.Id;
                            sipUri            = InstantMessageUtilities.GetSipUri((ProxyAddressCollection)adRecipient[ADRecipientSchema.EmailAddresses]);
                            mobilePhoneNumber = Utilities.NormalizePhoneNumber((string)adRecipient[ADOrgPersonSchema.MobilePhone]);
                        }
                    }
                    else
                    {
                        smtpAddress = participant.EmailAddress;
                        sipUri      = participant.EmailAddress;
                    }
                    RecipientAddress.RecipientAddressFlags recipientAddressFlags = RecipientAddress.RecipientAddressFlags.None;
                    if (participant.GetValueOrDefault <bool>(ParticipantSchema.IsDistributionList))
                    {
                        recipientAddressFlags |= RecipientAddress.RecipientAddressFlags.DistributionList;
                    }
                    else if (participant.GetValueOrDefault <bool>(ParticipantSchema.IsRoom))
                    {
                        recipientAddressFlags |= RecipientAddress.RecipientAddressFlags.Room;
                    }
                    StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;
                    if (storeParticipantOrigin != null)
                    {
                        storeObjectId     = storeParticipantOrigin.OriginItemId;
                        emailAddressIndex = storeParticipantOrigin.EmailAddressIndex;
                    }
                    RecipientWellNode.Render(this.Writer, base.UserContext, participant.DisplayName, smtpAddress, participant.EmailAddress, participant.RoutingType, participant.GetValueOrDefault <string>(ParticipantSchema.Alias), RecipientAddress.ToAddressOrigin(participant), (int)recipientAddressFlags, storeObjectId, emailAddressIndex, adObjectId, flag ? RecipientWellNode.RenderFlags.RenderCommas : RecipientWellNode.RenderFlags.None, sipUri, mobilePhoneNumber);
                    flag = true;
                }
            }
        }
        internal override void RenderContents(TextWriter writer, UserContext userContext, RecipientWellType type, RecipientWellNode.RenderFlags flags, RenderRecipientWellNode wellNode)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }
            if (userContext == null)
            {
                throw new ArgumentNullException("userContext");
            }
            if (!this.HasRecipients(type))
            {
                return;
            }
            IEnumerator <Participant> recipientsCollection = this.GetRecipientsCollection(type);

            RecipientWellNode.RenderFlags renderFlags = flags & ~RecipientWellNode.RenderFlags.RenderCommas;
            bool flag  = true;
            bool flag2 = userContext.IsInstantMessageEnabled();

            Result <ADRawEntry>[] array = null;
            int num = 0;

            while (recipientsCollection.MoveNext())
            {
                Participant participant       = recipientsCollection.Current;
                string      smtpAddress       = null;
                string      alias             = null;
                string      text              = null;
                int         num2              = 0;
                ADObjectId  adObjectId        = null;
                string      mobilePhoneNumber = null;
                if (participant.RoutingType == "EX" && !string.IsNullOrEmpty(participant.EmailAddress))
                {
                    bool flag3 = (flags & RecipientWellNode.RenderFlags.ReadOnly) != RecipientWellNode.RenderFlags.None;
                    if (flag3)
                    {
                        alias = Utilities.GetParticipantProperty <string>(participant, ParticipantSchema.Alias, null);
                    }
                    bool participantProperty = Utilities.GetParticipantProperty <bool>(participant, ParticipantSchema.IsDistributionList, false);
                    if (participantProperty)
                    {
                        num2 |= 1;
                    }
                    bool participantProperty2 = Utilities.GetParticipantProperty <bool>(participant, ParticipantSchema.IsRoom, false);
                    if (participantProperty2)
                    {
                        num2 |= 2;
                    }
                    smtpAddress = Utilities.GetParticipantProperty <string>(participant, ParticipantSchema.SmtpAddress, null);
                    if (flag2 && !participantProperty && !participantProperty2)
                    {
                        text = Utilities.GetParticipantProperty <string>(participant, ParticipantSchema.SipUri, null);
                        if (text == null || text.Trim().Length == 0)
                        {
                            if (array == null)
                            {
                                array = AdRecipientBatchQuery.FindAdResultsByLegacyExchangeDNs(this.GetRecipientsCollection(type), userContext);
                            }
                            ADRawEntry data = array[num].Data;
                            if (data != null)
                            {
                                adObjectId = (ADObjectId)data[ADObjectSchema.Id];
                                text       = InstantMessageUtilities.GetSipUri((ProxyAddressCollection)data[ADRecipientSchema.EmailAddresses]);
                                if (text != null && text.Trim().Length == 0)
                                {
                                    text = null;
                                }
                            }
                        }
                    }
                    if (userContext.IsSmsEnabled)
                    {
                        if (array == null)
                        {
                            array = AdRecipientBatchQuery.FindAdResultsByLegacyExchangeDNs(this.GetRecipientsCollection(type), userContext);
                        }
                        ADRawEntry data2 = array[num].Data;
                        if (data2 != null)
                        {
                            mobilePhoneNumber = (string)data2[ADOrgPersonSchema.MobilePhone];
                        }
                    }
                    num++;
                }
                else if (participant.RoutingType == "SMTP")
                {
                    smtpAddress = participant.EmailAddress;
                    if (flag2)
                    {
                        text = participant.EmailAddress;
                    }
                }
                else if (string.CompareOrdinal(participant.RoutingType, "MAPIPDL") == 0)
                {
                    num2 |= 1;
                }
                StoreObjectId          storeObjectId          = null;
                EmailAddressIndex      emailAddressIndex      = EmailAddressIndex.None;
                StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;
                if (storeParticipantOrigin != null && storeParticipantOrigin.OriginItemId != null)
                {
                    storeObjectId     = storeParticipantOrigin.OriginItemId;
                    emailAddressIndex = storeParticipantOrigin.EmailAddressIndex;
                }
                if (wellNode(writer, userContext, participant.DisplayName, smtpAddress, participant.EmailAddress, participant.RoutingType, alias, RecipientAddress.ToAddressOrigin(participant), num2, storeObjectId, emailAddressIndex, adObjectId, renderFlags, text, mobilePhoneNumber) && flag)
                {
                    flag = false;
                    if ((flags & RecipientWellNode.RenderFlags.RenderCommas) != RecipientWellNode.RenderFlags.None)
                    {
                        renderFlags |= RecipientWellNode.RenderFlags.RenderCommas;
                    }
                }
            }
        }
        // Token: 0x060000C0 RID: 192 RVA: 0x00006DF0 File Offset: 0x00004FF0
        protected override bool RenderAnrContents(TextWriter writer, UserContext userContext, RecipientWellType type, bool isTableStartRendered)
        {
            bool flag  = isTableStartRendered;
            bool flag2 = false;

            if (this.HasRecipients(type))
            {
                AdRecipientBatchQuery     adRecipientBatchQuery = new AdRecipientBatchQuery(this.GetRecipientCollection(type), this.UserContext);
                IEnumerator <Participant> recipientCollection   = this.GetRecipientCollection(type);
                string empty = string.Empty;
                int    num   = 0;
                List <RecipientAddress> list = new List <RecipientAddress>();
                RecipientItemType       recipientItemType = ItemRecipientWell.GetRecipientItemType(type);
                int num2 = 0;
                while (recipientCollection.MoveNext())
                {
                    Participant participant = recipientCollection.Current;
                    string      text        = ItemRecipientWell.BuildRecipientIdString(recipientItemType, num2++);
                    if (string.CompareOrdinal(participant.RoutingType, "MAPIPDL") != 0 && (string.IsNullOrEmpty(participant.EmailAddress) || string.IsNullOrEmpty(participant.RoutingType)) && !string.IsNullOrEmpty(participant.DisplayName))
                    {
                        num = 0;
                        ADObjectId adobjectId = null;
                        int        num3;
                        ItemRecipientWell.GetSmtpAddressAndADObjectInfo(participant, adRecipientBatchQuery, out adobjectId, out num, out num3);
                        StoreParticipantOrigin storeParticipantOrigin = participant.Origin as StoreParticipantOrigin;
                        if (storeParticipantOrigin != null)
                        {
                            StoreObjectId originItemId = storeParticipantOrigin.OriginItemId;
                        }
                        if (!flag)
                        {
                            writer.Write("<table cellspacing=0 cellpadding=0 class=\"anrot\" id=\"tblANR\"><tr><td class=\"msg\"><h1 tabindex=0>");
                            writer.Write(LocalizedStrings.GetHtmlEncoded(147143837));
                            writer.Write("</h1></td></tr><tr><td class=\"h100\"><table cellspacing=0 cellpadding=0 class=\"anrit\">");
                            flag = true;
                        }
                        if (!flag2)
                        {
                            string value = null;
                            if (this is CalendarItemRecipientWell)
                            {
                                switch (type)
                                {
                                case RecipientWellType.To:
                                    value = LocalizedStrings.GetHtmlEncoded(609567352);
                                    break;

                                case RecipientWellType.Cc:
                                    value = LocalizedStrings.GetHtmlEncoded(633037671);
                                    break;

                                case RecipientWellType.Bcc:
                                    value = LocalizedStrings.GetHtmlEncoded(-1107183092);
                                    break;
                                }
                            }
                            else
                            {
                                switch (type)
                                {
                                case RecipientWellType.To:
                                    value = LocalizedStrings.GetHtmlEncoded(-1105875540);
                                    break;

                                case RecipientWellType.Cc:
                                    value = LocalizedStrings.GetHtmlEncoded(701860997);
                                    break;

                                case RecipientWellType.Bcc:
                                    value = LocalizedStrings.GetHtmlEncoded(1482538735);
                                    break;
                                }
                            }
                            writer.Write("<tr><td class=\"hdr\" tabindex=0>");
                            writer.Write(value);
                            writer.Write("</td></tr>");
                            flag2 = true;
                        }
                        writer.Write("<tr><td class=\"rcpt\" nowrap><span tabindex=0>");
                        Utilities.CropAndRenderText(writer, participant.DisplayName, 24);
                        writer.Write("</span> [<a href=\"#\" title=\"");
                        writer.Write(Utilities.HtmlEncode(participant.DisplayName));
                        writer.Write("\" onClick=\"return onClkRmRcp('{0}')\">{1}</a>]", text, LocalizedStrings.GetHtmlEncoded(341226654));
                        writer.Write("</td></tr>");
                        list.Clear();
                        AnrManager.ResolveOneRecipient(participant.DisplayName, userContext, list);
                        if (list.Count == 0)
                        {
                            RecipientAddress recipientAddress = AnrManager.ResolveAnrStringToOneOffEmail(participant.DisplayName);
                            if (recipientAddress != null)
                            {
                                list.Add(recipientAddress);
                            }
                        }
                        int num4 = 0;
                        while (num4 < list.Count && num4 < 100)
                        {
                            RecipientAddress recipientAddress2 = list[num4];
                            if (recipientAddress2.DisplayName != null)
                            {
                                writer.Write("<tr><td><a href=\"#\" title=\"");
                                Utilities.HtmlEncode(recipientAddress2.DisplayName, writer);
                                if (recipientAddress2.SmtpAddress != null)
                                {
                                    writer.Write(" [");
                                    Utilities.HtmlEncode(recipientAddress2.SmtpAddress, writer);
                                    writer.Write("]");
                                }
                                writer.Write("\" onClick=\"return onClkAddAnr(this,'");
                                ResolvedRecipientDetail resolvedRecipientDetail = new ResolvedRecipientDetail(recipientAddress2);
                                resolvedRecipientDetail.RenderConcatenatedDetails(true, writer);
                                writer.Write("',");
                                writer.Write((int)recipientItemType);
                                writer.Write(",'");
                                writer.Write(text);
                                writer.Write("')\">");
                                Utilities.CropAndRenderText(writer, recipientAddress2.DisplayName, 24);
                                if (string.IsNullOrEmpty(recipientAddress2.DisplayName) && !string.IsNullOrEmpty(recipientAddress2.SmtpAddress))
                                {
                                    writer.Write("(");
                                    Utilities.CropAndRenderText(writer, recipientAddress2.SmtpAddress, 24);
                                    writer.Write(")");
                                }
                                writer.Write("</a></td></tr>");
                            }
                            num4++;
                        }
                    }
                }
            }
            return(flag);
        }