From 5100504f16d49920d23168e4ffcd5373326272fc Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 1 Apr 2026 15:06:13 +0200 Subject: [PATCH] Add MinMinutesSinceLastChange filter to envelope query Introduced an optional MinMinutesSinceLastChange filter to ReadEnvelopeQuery and updated the handler to return only envelopes whose last change was at least the specified number of minutes ago. This enables time-based filtering of envelope results. --- .../Envelopes/Queries/ReadEnvelopeQuery.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/EnvelopeGenerator.Application/Envelopes/Queries/ReadEnvelopeQuery.cs b/EnvelopeGenerator.Application/Envelopes/Queries/ReadEnvelopeQuery.cs index 0f68e78c..7dadecd7 100644 --- a/EnvelopeGenerator.Application/Envelopes/Queries/ReadEnvelopeQuery.cs +++ b/EnvelopeGenerator.Application/Envelopes/Queries/ReadEnvelopeQuery.cs @@ -24,6 +24,12 @@ public record ReadEnvelopeQuery : EnvelopeQueryBase, IRequest public int? UserId { get; init; } + /// + /// Optionaler Zeitfilter in Minuten; wenn gesetzt, werden nur Umschläge zurückgegeben, + /// deren letzte Änderung mindestens diese Anzahl an Minuten zurückliegt. + /// + public int? MinMinutesSinceLastChange { get; init; } + /// /// Setzt den Benutzerkontext für die Abfrage. /// @@ -132,6 +138,12 @@ public class ReadEnvelopeQueryHandler : IRequestHandler !status.Ignore.Contains(e.Status)); } + if (request.MinMinutesSinceLastChange is int minMinutesSinceLastChange) + { + query = query.Where(e => e.ChangedWhen.HasValue + && EF.Functions.DateDiffMinute(e.ChangedWhen.Value, DateTime.Now) >= minMinutesSinceLastChange); + } + var envelopes = await query .Include(e => e.Documents) .ToListAsync(cancel);