diff --git a/EnvelopeGenerator.Application/Histories/Queries/CountHistoryQuery.cs b/EnvelopeGenerator.Application/Histories/Queries/CountHistoryQuery.cs
index 2f1dae88..abe38c16 100644
--- a/EnvelopeGenerator.Application/Histories/Queries/CountHistoryQuery.cs
+++ b/EnvelopeGenerator.Application/Histories/Queries/CountHistoryQuery.cs
@@ -24,7 +24,7 @@ public static class CountHistoryQueryExtensions
///
///
///
- public static async Task AnyHistoryAsync(this ISender sender, Action queryOptions, CancellationToken cancel)
+ public static async Task AnyHistoryAsync(this ISender sender, Action queryOptions, CancellationToken cancel = default)
{
var query = new CountHistoryQuery();
queryOptions(query);
@@ -58,7 +58,19 @@ public class CountHistoryQueryHandler : IRequestHandler
///
public Task Handle(CountHistoryQuery request, CancellationToken cancel = default)
{
- var query = _repo.Where(h => h.EnvelopeId == request.EnvelopeId);
+ var query = _repo.Query;
+
+ if (request.Envelope.Id is int envId)
+ query = query.Where(e => e.Id == envId);
+ else if (request.Envelope.Uuid is string uuid)
+ query = query.Where(e => e.Envelope!.Uuid == uuid);
+#pragma warning disable CS0618 // Type or member is obsolete
+ else if (request.EnvelopeId is not null)
+ query = query.Where(h => h.EnvelopeId == request.EnvelopeId);
+#pragma warning restore CS0618 // Type or member is obsolete
+ else
+ throw new BadRequestException("Invalid request: An Envelope object or a valid EnvelopeId/UUID must be supplied.");
+
if (request.Status is not null)
query = query.Where(h => h.Status == request.Status);
diff --git a/EnvelopeGenerator.Application/Histories/Queries/HistoryQueryBase.cs b/EnvelopeGenerator.Application/Histories/Queries/HistoryQueryBase.cs
index ad953ee2..f9c70b34 100644
--- a/EnvelopeGenerator.Application/Histories/Queries/HistoryQueryBase.cs
+++ b/EnvelopeGenerator.Application/Histories/Queries/HistoryQueryBase.cs
@@ -24,5 +24,5 @@ public record HistoryQueryBase
///
///
///
- public EnvelopeQueryBase? Envelope { get; set; }
+ public EnvelopeQueryBase Envelope { get; set; } = new EnvelopeQueryBase();
}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/Histories/Queries/ReadHistoryQuery.cs b/EnvelopeGenerator.Application/Histories/Queries/ReadHistoryQuery.cs
index e8852cfd..13887f8f 100644
--- a/EnvelopeGenerator.Application/Histories/Queries/ReadHistoryQuery.cs
+++ b/EnvelopeGenerator.Application/Histories/Queries/ReadHistoryQuery.cs
@@ -51,9 +51,9 @@ public class ReadHistoryQueryHandler : IRequestHandler e.Id == envId);
- else if (request.Envelope?.Uuid is string uuid)
+ else if (request.Envelope.Uuid is string uuid)
query = query.Where(e => e.Envelope!.Uuid == uuid);
#pragma warning disable CS0618 // Type or member is obsolete
else if (request.EnvelopeId is not null)