public bool CompareAddresses(object messageValue, object ruleValue) { ProxyAddress proxyAddressFromSearchKey = RuleUtil.GetProxyAddressFromSearchKey(messageValue); ProxyAddress proxyAddressFromSearchKey2 = RuleUtil.GetProxyAddressFromSearchKey(ruleValue); if (proxyAddressFromSearchKey2 == null || proxyAddressFromSearchKey2 is InvalidProxyAddress || string.IsNullOrEmpty(proxyAddressFromSearchKey2.ValueString)) { string recipient = ServerStrings.Null; if (proxyAddressFromSearchKey2 != null) { recipient = proxyAddressFromSearchKey2.ToString(); } this.DisableAndMarkRuleInError(this.CurrentRule, RuleAction.Type.OP_INVALID, 0, DeferredError.RuleError.Parsing); this.RecordError(ServerStrings.FolderRuleErrorInvalidRecipient(recipient)); return(false); } this.TraceDebug <ProxyAddress, ProxyAddress>("Comparing recipients, message address {0}, rule address {1}", proxyAddressFromSearchKey, proxyAddressFromSearchKey2); RuleUtil.FaultInjection((FaultInjectionLid)4257530192U); return(RuleUtil.IsSameUser(this, this.RecipientCache, proxyAddressFromSearchKey, proxyAddressFromSearchKey2)); }