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`.
35 lines
1.4 KiB
C#
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,
|
|
};
|
|
}
|
|
}
|
|
}; |