Files
EnvelopeGenerator/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQuery.cs
Developer 02 8b1199bc71 Add Related property to ReadHistoryQuery and update controller
The `ReadHistoryQuery` record now includes a computed `Related` property that determines the context of the record based on the `Status` value. The constructor has been updated to remove the `Related` parameter.

Additionally, the `GetAllAsync` method in `HistoryController` has been modified to handle the `Related` property, setting the `withReceiver` boolean when the value is `ReferenceType.Receiver`.
2025-05-12 09:57:14 +02:00

35 lines
1.4 KiB
C#

using EnvelopeGenerator.Common;
namespace EnvelopeGenerator.Application.Histories.Queries.Read;
//TODO: Add sender query
/// <summary>
/// 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>
public record ReadHistoryQuery(
int EnvelopeId,
Constants.EnvelopeStatus? Status = null,
bool? OnlyLast = true)
{
/// <summary>
/// Abfrage, die angibt, worauf sich der Datensatz bezieht. Ob er sich auf den Empfänger, den Sender oder das System bezieht, wird durch 0, 1 bzw. 2 dargestellt.
/// </summary>
public Constants.ReferenceType? Related
{
get
{
if (Status is null)
return null;
var statusCode = ((int)Status).ToString();
return statusCode.FirstOrDefault() switch
{
'1' => (Constants.ReferenceType?)Constants.ReferenceType.Sender,
'2' => (Constants.ReferenceType?)Constants.ReferenceType.Receiver,
_ => (Constants.ReferenceType?)Constants.ReferenceType.System,
};
}
}
};