internal static LogSearchCursor GetCursor(string server, ServerVersion version, string logFile, string messageId, ProxyAddressCollection senderProxyAddresses, DateTime startTime, DateTime endTime) { LogQuery logQuery = new LogQuery(); LogAndCondition logAndCondition = new LogAndCondition(); if (!string.IsNullOrEmpty(messageId)) { LogCondition fieldStringComparison = TrackingSearch.GetFieldStringComparison(MessageTrackingField.MessageId, CsvFieldCache.NormalizeMessageID(messageId)); logAndCondition.Conditions.Add(fieldStringComparison); } if (senderProxyAddresses != null) { LogOrCondition logOrCondition = new LogOrCondition(); foreach (ProxyAddress proxyAddress in senderProxyAddresses) { LogCondition fieldStringComparison2 = TrackingSearch.GetFieldStringComparison(MessageTrackingField.SenderAddress, proxyAddress.AddressString); logOrCondition.Conditions.Add(fieldStringComparison2); } logAndCondition.Conditions.Add(logOrCondition); } logQuery.Filter = logAndCondition; logQuery.Beginning = startTime; logQuery.End = endTime; return(new LogSearchCursor(MessageTrackingSchema.MessageTrackingEvent, server, version, logFile, logQuery, null)); }
protected override LogCondition GetCondition() { LogAndCondition logAndCondition = new LogAndCondition(); if (this.eventId != null) { logAndCondition.Conditions.Add(this.GetFieldStringComparison(MessageTrackingField.EventId, this.eventId)); } if (this.sender != null) { logAndCondition.Conditions.Add(this.GetSenderCondition()); } if (this.recipients != null) { logAndCondition.Conditions.Add(this.GetRecipientsCondition()); } if (this.messageId != null) { logAndCondition.Conditions.Add(this.GetFieldStringComparison(MessageTrackingField.MessageId, CsvFieldCache.NormalizeMessageID(this.messageId))); } if (this.internalMessageId != null) { logAndCondition.Conditions.Add(this.GetFieldStringComparison(MessageTrackingField.InternalMessageId, this.internalMessageId)); } if (this.subject != null) { LogConditionField logConditionField = new LogConditionField(); logConditionField.Name = base.Table.Fields[18].Name; LogConditionConstant logConditionConstant = new LogConditionConstant(); logConditionConstant.Value = this.subject; LogStringContainsCondition logStringContainsCondition = new LogStringContainsCondition(); logStringContainsCondition.Left = logConditionField; logStringContainsCondition.Right = logConditionConstant; logStringContainsCondition.IgnoreCase = true; logAndCondition.Conditions.Add(logStringContainsCondition); } if (this.reference != null) { logAndCondition.Conditions.Add(this.GetFieldForAnyCondition(MessageTrackingField.Reference, this.reference, "e")); } return(logAndCondition); }
// Token: 0x0600002A RID: 42 RVA: 0x000033DC File Offset: 0x000015DC private static bool CheckOptimization(LogCondition condition, List <IndexedSearch> searches, CsvField[] indexedFields, int optimizationCheckRecursionDepth) { if (optimizationCheckRecursionDepth > 2) { return(false); } LogAndCondition logAndCondition = condition as LogAndCondition; if (logAndCondition != null) { foreach (LogCondition condition2 in logAndCondition.Conditions) { if (LogEvaluator.CheckOptimization(condition2, searches, indexedFields, optimizationCheckRecursionDepth + 1)) { return(true); } } return(false); } return(LogEvaluator.CheckFieldEqualsConstantCondition(condition, searches, indexedFields)); }