private static bool AtLeastOneAddressFoundInProxies(string[] addresses, ProxyAddressCollection[] proxies) { foreach (ProxyAddressCollection proxyCollection in proxies) { if (LogCache.AtLeastOneAddressFoundInProxy(addresses, proxyCollection)) { return(true); } } return(false); }
public List <MessageTrackingLogEntry> GetMessageLog(RpcReason rpcReason, ILogReader reader, TrackingLogPrefix logPrefix, ProxyAddressCollection senderAddresses, MessageTrackingSource eventSource, HashSet <MessageTrackingEvent> eventIdFilterSet, ProxyAddressCollection[] recipientAddresses, string messageId) { List <MessageTrackingLogEntry> list = new List <MessageTrackingLogEntry>(); string text = null; bool flag = false; if (senderAddresses == null && string.IsNullOrEmpty(messageId)) { throw new ArgumentException("Either senderAddresses or messageId must be specified to use log cache"); } if (!string.IsNullOrEmpty(messageId)) { text = TrackingSearch.RemoveAngleBracketsIfNeeded(messageId); } List <MessageTrackingLogEntry> messageLog; if (!string.IsNullOrEmpty(text)) { messageLog = this.GetMessageLog(rpcReason, reader, logPrefix, text); flag = true; } else { messageLog = this.GetMessageLog(rpcReason, reader, logPrefix, senderAddresses); } foreach (MessageTrackingLogEntry messageTrackingLogEntry in messageLog) { if (messageTrackingLogEntry.Source == eventSource && (eventIdFilterSet == null || eventIdFilterSet.Contains(messageTrackingLogEntry.EventId)) && (!flag || senderAddresses == null || LogCache.AtLeastOneAddressFoundInProxy(new string[] { messageTrackingLogEntry.SenderAddress }, senderAddresses)) && (recipientAddresses == null || LogCache.AtLeastOneAddressFoundInProxies(messageTrackingLogEntry.RecipientAddresses, recipientAddresses))) { list.Add(messageTrackingLogEntry); } } return(list); }