From 5dd4a465946c942b57eddcf387fdbd974cee96cf Mon Sep 17 00:00:00 2001 From: Phil Bastian Date: Thu, 24 Apr 2025 10:33:38 +0800 Subject: [PATCH] include daterange checking for in-memory audit message querying --- .../InMemoryAuditDataStore.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ServiceControl.Audit.Persistence.InMemory/InMemoryAuditDataStore.cs b/src/ServiceControl.Audit.Persistence.InMemory/InMemoryAuditDataStore.cs index feaab3d080..3632772f1f 100644 --- a/src/ServiceControl.Audit.Persistence.InMemory/InMemoryAuditDataStore.cs +++ b/src/ServiceControl.Audit.Persistence.InMemory/InMemoryAuditDataStore.cs @@ -45,7 +45,9 @@ public async Task> QuerySagaHistoryById(Guid input, Can public async Task>> GetMessages(bool includeSystemMessages, PagingInfo pagingInfo, SortInfo sortInfo, DateTimeRange timeSentRange, CancellationToken cancellationToken) { var matched = messageViews - .Where(w => !w.IsSystemMessage || includeSystemMessages) + .Where(w => (!w.IsSystemMessage || includeSystemMessages) && + (timeSentRange == null || !timeSentRange.From.HasValue || w.TimeSent >= timeSentRange.From.Value) && + (timeSentRange == null || !timeSentRange.To.HasValue || w.TimeSent <= timeSentRange.To.Value)) .ToList(); return await Task.FromResult(new QueryResult>(matched, new QueryStatsInfo(string.Empty, matched.Count))); @@ -56,7 +58,9 @@ public async Task>> QueryMessages(string keyword var messages = GetMessageIdsMatchingQuery(keyword); var matched = messageViews - .Where(w => messages.Contains(w.MessageId)) + .Where(w => messages.Contains(w.MessageId) && + (timeSentRange == null || !timeSentRange.From.HasValue || w.TimeSent >= timeSentRange.From.Value) && + (timeSentRange == null || !timeSentRange.To.HasValue || w.TimeSent <= timeSentRange.To.Value)) .ToList(); return await Task.FromResult(new QueryResult>(matched, new QueryStatsInfo(string.Empty, matched.Count()))); } @@ -65,13 +69,19 @@ public async Task>> QueryMessagesByReceivingEndp { var messages = GetMessageIdsMatchingQuery(keyword); - var matched = messageViews.Where(w => w.ReceivingEndpoint.Name == endpoint && messages.Contains(w.MessageId)).ToList(); + var matched = messageViews.Where(w => w.ReceivingEndpoint.Name == endpoint && messages.Contains(w.MessageId) && + (timeSentRange == null || !timeSentRange.From.HasValue || w.TimeSent >= timeSentRange.From.Value) && + (timeSentRange == null || !timeSentRange.To.HasValue || w.TimeSent <= timeSentRange.To.Value)) + .ToList(); return await Task.FromResult(new QueryResult>(matched, new QueryStatsInfo(string.Empty, matched.Count))); } public async Task>> QueryMessagesByReceivingEndpoint(bool includeSystemMessages, string endpointName, PagingInfo pagingInfo, SortInfo sortInfo, DateTimeRange timeSentRange, CancellationToken cancellationToken) { - var matched = messageViews.Where(w => w.ReceivingEndpoint.Name == endpointName).ToList(); + var matched = messageViews.Where(w => w.ReceivingEndpoint.Name == endpointName && + (timeSentRange == null || !timeSentRange.From.HasValue || w.TimeSent >= timeSentRange.From.Value) && + (timeSentRange == null || !timeSentRange.To.HasValue || w.TimeSent <= timeSentRange.To.Value)) + .ToList(); return await Task.FromResult(new QueryResult>(matched, new QueryStatsInfo(string.Empty, matched.Count))); }