public EmailRecipientsWithPermission( User user, ActionRequiringAccountPermissions action, IReadOnlyList <MailAddress> cc = null, IReadOnlyList <MailAddress> bcc = null, IReadOnlyList <MailAddress> replyTo = null) { if (user == null) { throw new ArgumentNullException(nameof(user)); } if (action == null) { throw new ArgumentNullException(nameof(action)); } To = AddAddressesWithPermission(user, action); CC = cc ?? new List <MailAddress>(); Bcc = bcc ?? new List <MailAddress>(); ReplyTo = replyTo ?? new List <MailAddress>(); }
public static IReadOnlyList <MailAddress> GetAddressesWithPermission(User user, ActionRequiringAccountPermissions action) { if (user == null) { throw new ArgumentNullException(nameof(user)); } if (action == null) { throw new ArgumentNullException(nameof(action)); } var recipients = new List <MailAddress>(); if (user is Organization organization) { var membersAllowedToAct = organization.Members .Where(m => action.CheckPermissions(m.Member, m.Organization) == PermissionsCheckResult.Allowed) .Select(m => m.Member); foreach (var member in membersAllowedToAct) { if (!member.EmailAllowed) { continue; } recipients.Add(member.ToMailAddress()); } } else if (user.EmailAllowed) { recipients.Add(user.ToMailAddress()); } return(recipients); }
private static IReadOnlyList <MailAddress> AddAddressesWithPermission(User user, ActionRequiringAccountPermissions action) { var recipients = new List <MailAddress>(); if (user is Organization organization) { var membersAllowedToAct = organization.Members .Where(m => action.CheckPermissions(m.Member, m.Organization) == PermissionsCheckResult.Allowed) .Select(m => m.Member); foreach (var member in membersAllowedToAct) { if (!member.EmailAllowed) { continue; } recipients.Add(member.ToMailAddress()); } } else if (user.EmailAllowed) { recipients.Add(user.ToMailAddress()); } return(recipients); }