private static void FillMailCC(PXGraph graph, CRSMEmail message, Guid?refNoteId)
        {
            if (refNoteId == null)
            {
                return;
            }

            message.MailCc = PXDBEmailAttribute.AppendAddresses(message.MailCc, CRRelationsList <CRRelation.refNoteID> .GetEmailsForCC(graph, refNoteId.Value));
        }
Esempio n. 2
0
        protected static string MergeAddressList(CRSMEmail email, string addressList, string sourceList)
        {
            if (string.IsNullOrEmpty(addressList))
            {
                return(sourceList);
            }

            List <MailAddress> result = new List <MailAddress>();
            var index = new HashSet <string>();

            foreach (MailAddress address in EmailParser.ParseAddresses(addressList))
            {
                if (index.Contains(address.Address))
                {
                    continue;
                }
                if (email.MailTo != null && email.MailTo.Contains(address.Address, StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }
                if (email.MailCc != null && email.MailCc.Contains(address.Address, StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }
                if (email.MailBcc != null && email.MailBcc.Contains(address.Address, StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }
                index.Add(address.Address);

                result.Add(address);
            }
            return(result.Count == 0
                ? sourceList
                : string.IsNullOrEmpty(sourceList)
                    ? PXDBEmailAttribute.ToString(result)
                    : PXDBEmailAttribute.AppendAddresses(sourceList, PXDBEmailAttribute.ToString(result)));
        }