62 lines
1.9 KiB
C#
62 lines
1.9 KiB
C#
using DigitalData.Core.Exceptions;
|
|
using EnvelopeGenerator.Extensions;
|
|
|
|
namespace EnvelopeGenerator.Application.Model;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public record EnvelopeReceiverQueryBase : EnvelopeReceiverQueryBase<EnvelopeQueryBase, ReceiverQueryBase>;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <typeparam name="TEnvelopeQuery"></typeparam>
|
|
/// <typeparam name="TReceiverQuery"></typeparam>
|
|
public record EnvelopeReceiverQueryBase<TEnvelopeQuery, TReceiverQuery>
|
|
where TEnvelopeQuery : EnvelopeQueryBase, new()
|
|
where TReceiverQuery : ReceiverQueryBase, new()
|
|
{
|
|
private string? _key;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public virtual string? Key
|
|
{
|
|
get => _key;
|
|
init
|
|
{
|
|
if (value is null)
|
|
{
|
|
_key = null;
|
|
return;
|
|
}
|
|
|
|
(string? EnvelopeUuid, string? ReceiverSignature) = value.DecodeEnvelopeReceiverId();
|
|
if (string.IsNullOrEmpty(EnvelopeUuid) || string.IsNullOrEmpty(ReceiverSignature))
|
|
throw new BadRequestException("Der EnvelopeReceiverKey muss ein gültiger Base64-kodierter String sein, der die EnvelopeUuid und die ReceiverSignature enthält.");
|
|
|
|
Envelope = new TEnvelopeQuery()
|
|
{
|
|
Uuid = EnvelopeUuid
|
|
};
|
|
Receiver = new TReceiverQuery()
|
|
{
|
|
Signature = ReceiverSignature
|
|
};
|
|
_key = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Repräsentiert eine Abfrage für Umschläge.
|
|
/// </summary>
|
|
public virtual TEnvelopeQuery Envelope { get; init; } = new();
|
|
|
|
/// <summary>
|
|
/// Stellt eine Abfrage dar, um die Details eines Empfängers zu lesen.
|
|
/// um spezifische Informationen über einen Empfänger abzurufen.
|
|
/// </summary>
|
|
public virtual TReceiverQuery Receiver { get; init; } = new();
|
|
} |