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)); }
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))); }