Refactor envelope and history query structures
- Removed `Sender` parameter and properties from `EnvelopeQuery`. - Deleted `SenderQuery` class entirely. - Cleaned up `HistoryQuery` by removing unused `using` directives and `ReferenceType` logic. - Added `Related` parameter to `ReadHistoryQuery` for reference type indication. - Updated `ReferenceType` enum in `Constants.vb` to use explicit integer values. - Modified `HistoryController` to utilize the new `Related` property for determining sender/receiver inclusion.
This commit is contained in:
parent
4551e5dc64
commit
994c844f25
@ -6,27 +6,11 @@ namespace EnvelopeGenerator.Application.Envelopes;
|
||||
/// Repräsentiert eine Abfrage für Umschläge.
|
||||
/// </summary>
|
||||
/// <param name="Id">Die eindeutige Kennung des Umschlags.</param>
|
||||
/// <param name="Sender">Absender des Schreibens</param>
|
||||
/// <param name="Status">Der Status des Umschlags.</param>
|
||||
/// <param name="Uuid">Die universell eindeutige Kennung des Umschlags.</param>
|
||||
public record EnvelopeQuery(
|
||||
int? Id = null,
|
||||
SenderQuery? Sender = null,
|
||||
int? Status = null,
|
||||
string? Uuid = null) : IRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// Die eindeutige Kennung des Benutzers.
|
||||
/// </summary>
|
||||
public int? SenderId => Sender?.Id;
|
||||
|
||||
/// <summary>
|
||||
/// Der Benutzername des Absenders.
|
||||
/// </summary>
|
||||
public string? SenderUsername => Sender?.Username;
|
||||
|
||||
/// <summary>
|
||||
/// Die E-Mail-Adresse des Benutzers.
|
||||
/// </summary>
|
||||
public string? SenderEmail => Sender?.Username;
|
||||
};
|
||||
@ -1,11 +0,0 @@
|
||||
namespace EnvelopeGenerator.Application.Envelopes;
|
||||
|
||||
/// <summary>
|
||||
/// Repräsentiert eine Abfrage für einen Absender.
|
||||
/// </summary>
|
||||
/// <param name="Id">Die eindeutige Kennung des Absenders.</param>
|
||||
/// <param name="Username">Der Benutzername des Absenders.</param>
|
||||
/// <param name="Email">Die E-Mail-Adresse des Absenders.</param>
|
||||
public record SenderQuery(int? Id = null, string? Username = null, string? Email = null)
|
||||
{
|
||||
}
|
||||
@ -1,30 +0,0 @@
|
||||
using EnvelopeGenerator.Application.Envelopes;
|
||||
using EnvelopeGenerator.Application.Receivers;
|
||||
using static EnvelopeGenerator.Common.Constants;
|
||||
|
||||
namespace EnvelopeGenerator.Application.Histories;
|
||||
|
||||
/// <summary>
|
||||
/// Repräsentiert eine Abfrage für die Verlaufshistorie eines Umschlags.
|
||||
/// </summary>
|
||||
/// <param name="EnvelopeId">Die eindeutige Kennung des Umschlags.</param>
|
||||
/// <param name="Envelope">Die Abfrage, die den Umschlag beschreibt.</param>
|
||||
/// <param name="Receiver">Die Abfrage, die den Empfänger beschreibt.</param>
|
||||
/// <param name="OnlyLast">Abfrage zur Steuerung, ob nur der aktuelle Status oder der gesamte Datensatz zurückgegeben wird.</param>
|
||||
public record HistoryQuery<TEnvelopeQuery, TReceiverQuery>(int EnvelopeId, TEnvelopeQuery? Envelope, TReceiverQuery? Receiver = null, bool? OnlyLast = null)
|
||||
where TEnvelopeQuery : EnvelopeQuery
|
||||
where TReceiverQuery : ReceiverQuery
|
||||
{
|
||||
/// <summary>
|
||||
/// Gibt den Referenztyp des Umschlags an.
|
||||
/// Wenn der Benutzer des Umschlags definiert ist, wird der Referenztyp als Empfänger betrachtet.
|
||||
/// Andernfalls, wenn ein Empfänger definiert ist, wird der Referenztyp ebenfalls als Empfänger betrachtet.
|
||||
/// Ist keiner von beiden definiert, wird der Referenztyp als System betrachtet.
|
||||
/// </summary>
|
||||
public ReferenceType ReferenceType =>
|
||||
Envelope?.Sender is not null
|
||||
? ReferenceType.Receiver
|
||||
: Receiver is not null
|
||||
? ReferenceType.Receiver
|
||||
: ReferenceType.System;
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
using EnvelopeGenerator.Application.Envelopes.Queries.Read;
|
||||
using EnvelopeGenerator.Application.Receivers.Queries.Read;
|
||||
using EnvelopeGenerator.Common;
|
||||
|
||||
namespace EnvelopeGenerator.Application.Histories.Queries.Read;
|
||||
|
||||
@ -9,10 +10,11 @@ namespace EnvelopeGenerator.Application.Histories.Queries.Read;
|
||||
/// <param name="EnvelopeId">Die eindeutige Kennung des Umschlags.</param>
|
||||
/// <param name="Envelope">Die Abfrage, die den Umschlag beschreibt.</param>
|
||||
/// <param name="Receiver">Die Abfrage, die den Empfänger beschreibt.</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,
|
||||
ReadEnvelopeQuery? Envelope = null,
|
||||
ReadReceiverQuery? Receiver = null,
|
||||
bool? OnlyLast = true)
|
||||
: HistoryQuery<ReadEnvelopeQuery, ReadReceiverQuery>(EnvelopeId, Envelope, Receiver, OnlyLast);
|
||||
Constants.ReferenceType? Related = null,
|
||||
bool? OnlyLast = true);
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
'TODO: standardize in xwiki
|
||||
Public Enum ReferenceType
|
||||
Receiver
|
||||
Receiver = 0
|
||||
Sender
|
||||
System
|
||||
Unknown
|
||||
|
||||
@ -70,11 +70,10 @@ public class HistoryController : ControllerBase
|
||||
[Authorize]
|
||||
public async Task<IActionResult> GetAllAsync([FromQuery] ReadHistoryQuery history)
|
||||
{
|
||||
ReferenceType? refTypEnum = history.ReferenceType;
|
||||
bool withReceiver = false;
|
||||
bool withSender = false;
|
||||
|
||||
switch (refTypEnum)
|
||||
switch (history.Related)
|
||||
{
|
||||
case ReferenceType.Receiver:
|
||||
withReceiver = true;
|
||||
@ -86,7 +85,7 @@ public class HistoryController : ControllerBase
|
||||
|
||||
var histories = await _service.ReadAsync(
|
||||
envelopeId: history.EnvelopeId,
|
||||
referenceType: refTypEnum,
|
||||
referenceType: history.Related,
|
||||
withSender: withSender,
|
||||
withReceiver: withReceiver);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user