private void SetRuleWithoutPriorityChange(ADRuleStorageManager storedRules) { TransportRule transportRule = (TransportRule)TransportRuleParser.Instance.GetRule(this.DataObject.Xml); HygieneFilterRule hygieneFilterRule = this.CreateTaskRuleFromInternalRule(transportRule, -1); this.UpdateRuleFromParameters(hygieneFilterRule); this.ValidateRuleEsnCompatibility(hygieneFilterRule); transportRule = hygieneFilterRule.ToInternalRule(); this.DataObject.Xml = TransportRuleSerializer.Instance.SaveRuleToString(transportRule); if (base.Fields.IsModified("Name") && !storedRules.CanRename((ADObjectId)this.DataObject.Identity, ((ADObjectId)this.DataObject.Identity).Name, transportRule.Name)) { base.WriteError(new ArgumentException(Strings.RuleNameAlreadyExist, "Name"), ErrorCategory.InvalidArgument, this.Name); } base.InternalProcessRecord(); }
private void SetRuleWithPriorityChange(ADRuleStorageManager storedRules) { TransportRule transportRule; int priority; storedRules.GetRule(this.DataObject.Identity, out transportRule, out priority); if (transportRule == null) { base.WriteError(new ArgumentException(Strings.RuleNotFound(this.Identity.ToString()), "Identity"), ErrorCategory.InvalidArgument, this.Identity); } HygieneFilterRule hygieneFilterRule = this.CreateTaskRuleFromInternalRule(transportRule, priority); this.UpdateRuleFromParameters(hygieneFilterRule); this.ValidateRuleEsnCompatibility(hygieneFilterRule); transportRule = hygieneFilterRule.ToInternalRule(); try { storedRules.UpdateRule(transportRule, hygieneFilterRule.Identity, hygieneFilterRule.Priority); } catch (RulesValidationException) { base.WriteError(new ArgumentException(Strings.RuleNameAlreadyExist, "Name"), ErrorCategory.InvalidArgument, this.Name); } }