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`.
This commit is contained in:
Developer 02 2025-05-12 09:57:14 +02:00
parent 1d74b7ca06
commit 8b1199bc71
2 changed files with 23 additions and 3 deletions

View File

@ -8,10 +8,28 @@ namespace EnvelopeGenerator.Application.Histories.Queries.Read;
/// </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="Related">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.</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,
Constants.ReferenceType? Related = null,
bool? OnlyLast = true);
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,
};
}
}
};

View File

@ -110,6 +110,8 @@ public class HistoryController : ControllerBase
bool withReceiver = false;
bool withSender = false;
switch (history.Related)
{
case ReferenceType.Receiver: