protected void SetParametersFromPredicate(TransportRulePredicate predicate, bool isException) { if (predicate is SentToPredicate) { if (isException) { this.exceptIfSentTo = Utils.BuildRecipientIdArray(((SentToPredicate)predicate).Addresses); return; } this.sentTo = Utils.BuildRecipientIdArray(((SentToPredicate)predicate).Addresses); return; } else { if (!(predicate is SentToMemberOfPredicate)) { if (predicate is RecipientDomainIsPredicate) { if (isException) { this.exceptIfRecipientDomainIs = ((RecipientDomainIsPredicate)predicate).Words; return; } this.recipientDomainIs = ((RecipientDomainIsPredicate)predicate).Words; } return; } if (isException) { this.exceptIfSentToMemberOf = Utils.BuildRecipientIdArray(((SentToMemberOfPredicate)predicate).Addresses); return; } this.sentToMemberOf = Utils.BuildRecipientIdArray(((SentToMemberOfPredicate)predicate).Addresses); return; } }
public static List <string> GetEtrsForDlpPolicy(Guid dlpGuid, IConfigDataProvider dataSession) { ADRuleStorageManager adruleStorageManager; IEnumerable <TransportRuleHandle> transportRuleHandles = DlpUtils.GetTransportRuleHandles(dataSession, out adruleStorageManager); IEnumerable <Microsoft.Exchange.MessagingPolicies.Rules.Tasks.Rule> source = from ruleHandle in transportRuleHandles select Microsoft.Exchange.MessagingPolicies.Rules.Tasks.Rule.CreateFromInternalRule(TransportRulePredicate.GetAvailablePredicateMappings(), TransportRuleAction.GetAvailableActionMappings(), ruleHandle.Rule, ruleHandle.AdRule.Priority, ruleHandle.AdRule); return((from rule in source where rule.DlpPolicyId == dlpGuid select rule.ToCmdlet()).ToList <string>()); }
internal static IEnumerable <Microsoft.Exchange.MessagingPolicies.Rules.Tasks.Rule> GetTransportRules(IConfigDataProvider dataSession, Func <Microsoft.Exchange.MessagingPolicies.Rules.Tasks.Rule, bool> selector) { ADRuleStorageManager adruleStorageManager; IEnumerable <TransportRuleHandle> transportRuleHandles = DlpUtils.GetTransportRuleHandles(dataSession, out adruleStorageManager); IEnumerable <Microsoft.Exchange.MessagingPolicies.Rules.Tasks.Rule> source = from ruleHandle in transportRuleHandles select Microsoft.Exchange.MessagingPolicies.Rules.Tasks.Rule.CreateFromInternalRule(TransportRulePredicate.GetAvailablePredicateMappings(), TransportRuleAction.GetAvailableActionMappings(), ruleHandle.Rule, ruleHandle.AdRule.Priority, ruleHandle.AdRule); return(source.Where(selector)); }