private bool ShouldSubmit(MessageItem message) { if (this.IsScheduleMessage(message)) { base.Context.TraceDebug("Delegate action: Message will be forwarded."); return(true); } ProxyAddress originalSender = RuleUtil.GetOriginalSender(base.Context.Message); if (originalSender == null || originalSender is InvalidProxyAddress) { base.Context.TraceDebug("Delegate action: Sent-Representing properties are not valid, message will not be forwarded."); return(false); } base.Context.TraceDebug <ProxyAddress>("Delegate action: Message will be sent representing {0}.", originalSender); Result <ADRawEntry> result = base.Context.RecipientCache.FindAndCacheRecipient(originalSender); if (result.Data == null) { if (ProviderError.NotFound == result.Error) { base.Context.TraceError("Delegate action: Sender doesn't exist in AD."); } else { base.Context.TraceError <ProviderError>("Delegate action: Sender look up failed: {0}", result.Error); } base.Context.TraceDebug("Delegate action: Message will not be forwarded."); return(false); } base.Context.TraceDebug("Delegate action: Message will be forwarded."); return(true); }