add logic for status query

This commit is contained in:
2025-08-22 15:24:34 +02:00
parent c0a5b57668
commit 290e87048c
11 changed files with 43 additions and 31 deletions

View File

@@ -25,7 +25,7 @@ public record EnvelopeHistoryDto
public required string UserReference { get; set; }
/// <summary>
/// Status code of the envelope at this history point.
/// StatusQ code of the envelope at this history point.
/// </summary>
public int Status { get; set; }

View File

@@ -82,7 +82,7 @@ public class ResetEmailTemplateCommandHandler : IRequestHandler<ResetEmailTempla
new(){
Id = 6,
Name = "DocumentRejected_ADM",
Body = "Guten Tag [NAME_SENDER],<p><B><I>[NAME_RECEIVER]</I></B> hat den Umschlag <B><I>'[DOCUMENT_TITLE]'</I></B> mit folgendem Grund abgelehnt: <p>\r\n[REASON] \r\n<p>Der Umschlag wurde auf den Status Rejected gesetzt. <p> \r\nMit freundlichen Grüßen<br />\r\n<br />\r\n[NAME_PORTAL]",
Body = "Guten Tag [NAME_SENDER],<p><B><I>[NAME_RECEIVER]</I></B> hat den Umschlag <B><I>'[DOCUMENT_TITLE]'</I></B> mit folgendem Grund abgelehnt: <p>\r\n[REASON] \r\n<p>Der Umschlag wurde auf den StatusQ Rejected gesetzt. <p> \r\nMit freundlichen Grüßen<br />\r\n<br />\r\n[NAME_PORTAL]",
Subject = "'[DOCUMENT_TITLE]' - Unterzeichnungsvorgang zurückgezogen"
},
new(){

View File

@@ -9,7 +9,7 @@ namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
/// <summary>
/// Repräsentiert eine Abfrage zum Lesen eines Envelope-Empfängers.
/// Invalid (0): Ungültiger Status.
/// Invalid (0): Ungültiger StatusQ.
/// EnvelopeCreated (1001): Der Umschlag wurde erstellt.
/// EnvelopeSaved (1002): Der Umschlag wurde gespeichert.
/// EnvelopeQueued (1003): Der Umschlag wurde zur Verarbeitung eingeplant.
@@ -39,7 +39,7 @@ namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
/// Diese Abfrage kombiniert Informationen über einen Umschlag (<see cref="ReadEnvelopeQuery"/>)
/// und einen Empfänger (<see cref="ReadReceiverQuery"/>), um eine vollständige Antwort
/// (<see cref="EnvelopeReceiverDto"/>) zu generieren.
/// Die Antwort enthält Details wie den Status, die Zuordnung zwischen Umschlag und Empfänger
/// Die Antwort enthält Details wie den StatusQ, die Zuordnung zwischen Umschlag und Empfänger
/// sowie zusätzliche Metadaten.
/// </remarks>
public record ReadEnvelopeReceiverQuery : IRequest<EnvelopeReceiverDto>

View File

@@ -43,8 +43,20 @@ public class ReadEnvelopeReceiverQueryHandler : IRequestHandler<ReadEnvelopeRece
if (env.Id is not null)
q = q.Where(er => er.EnvelopeId == env.Id);
if (env.Status is not null)
q = q.Where(er => er.Envelope.Status == env.Status);
if (env.StatusQ is not null)
{
if(env.StatusQ.MinStatus is not null)
q = q.Where(er => er.Envelope.Status >= env.StatusQ.MinStatus);
if(env.StatusQ.MaxStatus is not null)
q = q.Where(er => er.Envelope.Status <= env.StatusQ.MaxStatus);
if(env.StatusQ .Status?.Length > 0)
q = q.Where(er => env.StatusQ.Status.Contains(er.Envelope.Status));
if(env.StatusQ.IgnoredStatus is not null)
q = q.Where(er => !env.StatusQ.IgnoredStatus.Contains(er.Envelope.Status));
}
if (env.Uuid is not null)
q = q.Where(er => er.Envelope.Uuid == env.Uuid);

View File

@@ -21,12 +21,12 @@ public class ReadEnvelopeQuery : IRequest
/// <summary>
/// Abfrage des Status des Umschlags
/// </summary>
public EnvelopeStatusQuery? Status { get; init; }
public EnvelopeStatusQuery? StatusQ { get; init; }
}
/// <summary>
/// Repräsentiert den Status eines Umschlags und dessen Beziehung zum Empfänger. (vgl. auch <see cref="Constants.EnvelopeStatus"/>
/// Invalid (0): Ungültiger Status.
/// Repräsentiert den StatusQ eines Umschlags und dessen Beziehung zum Empfänger. (vgl. auch <see cref="Constants.EnvelopeStatus"/>
/// Invalid (0): Ungültiger StatusQ.
/// EnvelopeCreated (1001): Der Umschlag wurde erstellt.
/// EnvelopeSaved (1002): Der Umschlag wurde gespeichert.
/// EnvelopeQueued (1003): Der Umschlag wurde zur Verarbeitung eingeplant.
@@ -57,20 +57,20 @@ public record EnvelopeStatusQuery
/// <summary>
/// Der minimale Statuswert, der berücksichtigt werden.
/// </summary>
public EnvelopeStatusQuery? MinStatus { get; init; }
public int? MinStatus { get; init; }
/// <summary>
/// Der maximale Statuswert, der berücksichtigt werden.
/// </summary>
public EnvelopeStatusQuery? MaxStatus { get; init; }
public int? MaxStatus { get; init; }
/// <summary>
/// Eine Liste von Statuswerten, die einbezogen werden.
/// </summary>
public EnvelopeStatusQuery[]? Status { get; init; }
public int[]? Status { get; init; }
/// <summary>
/// Eine Liste von Statuswerten, die ignoriert werden werden.
/// </summary>
public EnvelopeStatusQuery[]? IgnoredStatus { get; init; }
public int[]? IgnoredStatus { get; init; }
}

View File

@@ -9,8 +9,8 @@ namespace EnvelopeGenerator.Application.Histories.Queries.Read;
/// Repräsentiert eine Abfrage für die Verlaufshistorie eines Umschlags.
/// </summary>
/// <param name="EnvelopeId">Die eindeutige Kennung des Umschlags.</param>
/// <param name="Status">Der Status des Umschlags, der abgefragt werden soll. Kann optional angegeben werden, um die Ergebnisse zu filtern.</param>
/// <param name="OnlyLast">Abfrage zur Steuerung, ob nur der aktuelle Status oder der gesamte Datensatz zurückgegeben wird.</param>
/// <param name="Status">Der StatusQ des Umschlags, der abgefragt werden soll. Kann optional angegeben werden, um die Ergebnisse zu filtern.</param>
/// <param name="OnlyLast">Abfrage zur Steuerung, ob nur der aktuelle StatusQ oder der gesamte Datensatz zurückgegeben wird.</param>
public record ReadHistoryQuery(
[Required]
int EnvelopeId,

View File

@@ -247,7 +247,7 @@ public class EnvelopeReceiverService : BasicCRUDService<IEnvelopeReceiverReposit
if (envelopeQuery?.Uuid is string uuid)
er_list = er_list.Where(er => er.Envelope?.Uuid == uuid);
if (envelopeQuery?.Status is int status)
if (envelopeQuery?.StatusQ is int status)
er_list = er_list.Where(er => er.Envelope?.Status == status);
if(receiverQuery?.Id is int id)