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