private void ReadJournalAction(Microsoft.Exchange.MessagingPolicies.Rules.Action action)
 {
     if (action.Arguments.Count != 1 || !action.Arguments[0].IsString)
     {
         throw new JournalRuleCorruptException();
     }
     this.ReadJournalEmailAddress(((Value)action.Arguments[0]).ParsedValue.ToString());
 }
        protected override ExecutionControl ExecuteAction(Microsoft.Exchange.MessagingPolicies.Rules.Action action, RulesEvaluationContext context)
        {
            ExecutionControl executionControl = base.ExecuteAction(action, context);

            if (executionControl == ExecutionControl.Execute && action is SenderNotify)
            {
                ((OwaRulesEvaluationContext)base.Context).CapturePerRuleMatchData();
            }
            return(executionControl);
        }
        internal JournalingRule Serialize()
        {
            Microsoft.Exchange.MessagingPolicies.Rules.Condition condition  = this.CreateScopeCondition();
            Microsoft.Exchange.MessagingPolicies.Rules.Condition condition2 = this.CreateRecipientCondition();
            Microsoft.Exchange.MessagingPolicies.Rules.Condition condition3 = this.CombineUsingAnd(new Microsoft.Exchange.MessagingPolicies.Rules.Condition[]
            {
                condition,
                condition2
            });
            Microsoft.Exchange.MessagingPolicies.Rules.Action item = this.CreateAction();
            JournalingRule journalingRule = (JournalingRule)JournalingRuleParser.Instance.CreateRule(base.Name);

            journalingRule.Condition = condition3;
            journalingRule.Actions.Add(item);
            journalingRule.ExpiryDate  = this.ExpiryDate;
            journalingRule.GccRuleType = JournalRuleObject.ConvertJournalRuleTypeToGccType(this.RuleType);
            journalingRule.Enabled     = (this.enabled ? RuleState.Enabled : RuleState.Disabled);
            return(journalingRule);
        }