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.
|
/// Repräsentiert eine Abfrage für Umschläge.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="Id">Die eindeutige Kennung des Umschlags.</param>
|
/// <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="Status">Der Status des Umschlags.</param>
|
||||||
/// <param name="Uuid">Die universell eindeutige Kennung des Umschlags.</param>
|
/// <param name="Uuid">Die universell eindeutige Kennung des Umschlags.</param>
|
||||||
public record EnvelopeQuery(
|
public record EnvelopeQuery(
|
||||||
int? Id = null,
|
int? Id = null,
|
||||||
SenderQuery? Sender = null,
|
|
||||||
int? Status = null,
|
int? Status = null,
|
||||||
string? Uuid = null) : IRequest
|
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.Envelopes.Queries.Read;
|
||||||
using EnvelopeGenerator.Application.Receivers.Queries.Read;
|
using EnvelopeGenerator.Application.Receivers.Queries.Read;
|
||||||
|
using EnvelopeGenerator.Common;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Histories.Queries.Read;
|
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="EnvelopeId">Die eindeutige Kennung des Umschlags.</param>
|
||||||
/// <param name="Envelope">Die Abfrage, die den Umschlag beschreibt.</param>
|
/// <param name="Envelope">Die Abfrage, die den Umschlag beschreibt.</param>
|
||||||
/// <param name="Receiver">Die Abfrage, die den Empfänger 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>
|
/// <param name="OnlyLast">Abfrage zur Steuerung, ob nur der aktuelle Status oder der gesamte Datensatz zurückgegeben wird.</param>
|
||||||
public record ReadHistoryQuery(
|
public record ReadHistoryQuery(
|
||||||
int EnvelopeId,
|
int EnvelopeId,
|
||||||
ReadEnvelopeQuery? Envelope = null,
|
ReadEnvelopeQuery? Envelope = null,
|
||||||
ReadReceiverQuery? Receiver = null,
|
ReadReceiverQuery? Receiver = null,
|
||||||
bool? OnlyLast = true)
|
Constants.ReferenceType? Related = null,
|
||||||
: HistoryQuery<ReadEnvelopeQuery, ReadReceiverQuery>(EnvelopeId, Envelope, Receiver, OnlyLast);
|
bool? OnlyLast = true);
|
||||||
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
'TODO: standardize in xwiki
|
'TODO: standardize in xwiki
|
||||||
Public Enum ReferenceType
|
Public Enum ReferenceType
|
||||||
Receiver
|
Receiver = 0
|
||||||
Sender
|
Sender
|
||||||
System
|
System
|
||||||
Unknown
|
Unknown
|
||||||
|
|||||||
@ -70,11 +70,10 @@ public class HistoryController : ControllerBase
|
|||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<IActionResult> GetAllAsync([FromQuery] ReadHistoryQuery history)
|
public async Task<IActionResult> GetAllAsync([FromQuery] ReadHistoryQuery history)
|
||||||
{
|
{
|
||||||
ReferenceType? refTypEnum = history.ReferenceType;
|
|
||||||
bool withReceiver = false;
|
bool withReceiver = false;
|
||||||
bool withSender = false;
|
bool withSender = false;
|
||||||
|
|
||||||
switch (refTypEnum)
|
switch (history.Related)
|
||||||
{
|
{
|
||||||
case ReferenceType.Receiver:
|
case ReferenceType.Receiver:
|
||||||
withReceiver = true;
|
withReceiver = true;
|
||||||
@ -86,7 +85,7 @@ public class HistoryController : ControllerBase
|
|||||||
|
|
||||||
var histories = await _service.ReadAsync(
|
var histories = await _service.ReadAsync(
|
||||||
envelopeId: history.EnvelopeId,
|
envelopeId: history.EnvelopeId,
|
||||||
referenceType: refTypEnum,
|
referenceType: history.Related,
|
||||||
withSender: withSender,
|
withSender: withSender,
|
||||||
withReceiver: withReceiver);
|
withReceiver: withReceiver);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user