79 lines
2.0 KiB
C#
79 lines
2.0 KiB
C#
using EnvelopeGenerator.Application.Model;
|
|
using EnvelopeGenerator.Domain;
|
|
|
|
namespace EnvelopeGenerator.Application.DocStatus.Commands;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public record ModifyDocStatusCommandBase : EnvelopeReceiverQueryBase
|
|
{
|
|
/// <summary>
|
|
/// Gets the current status code.
|
|
/// </summary>
|
|
public Constants.DocumentStatus Status => Value is null ? Constants.DocumentStatus.Created : Constants.DocumentStatus.Signed;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the display value associated with the status.
|
|
/// </summary>
|
|
public string? Value { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets timestamp when this record was added.
|
|
/// </summary>
|
|
public DateTime StatusChangedWhen { get; } = DateTime.Now;
|
|
|
|
/// <summary>
|
|
/// Maps the current command to a new instance of the specified type.
|
|
/// </summary>
|
|
/// <typeparam name="TDest"></typeparam>
|
|
/// <returns></returns>
|
|
public TDest To<TDest>() where TDest : ModifyDocStatusCommandBase, new()
|
|
=> new()
|
|
{
|
|
Key = Key,
|
|
Envelope = Envelope,
|
|
Receiver = Receiver,
|
|
Value = Value
|
|
};
|
|
}
|
|
|
|
#region Queries
|
|
/// <summary>
|
|
/// Repräsentiert eine Abfrage für Umschläge.
|
|
/// </summary>
|
|
public record EnvelopeQuery
|
|
{
|
|
/// <summary>
|
|
/// Die eindeutige Kennung des Umschlags.
|
|
/// </summary>
|
|
public int? Id { get; init; }
|
|
|
|
/// <summary>
|
|
/// Die universell eindeutige Kennung des Umschlags.
|
|
/// </summary>
|
|
public string? Uuid { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Stellt eine Abfrage dar, um die Details eines Empfängers zu lesen.
|
|
/// um spezifische Informationen über einen Empfänger abzurufen.
|
|
/// </summary>
|
|
public record ReceiverQuery
|
|
{
|
|
/// <summary>
|
|
/// ID des Empfängers
|
|
/// </summary>
|
|
public int? Id { get; init; }
|
|
|
|
/// <summary>
|
|
/// E-Mail Adresse des Empfängers
|
|
/// </summary>
|
|
public string? EmailAddress { get; init; }
|
|
|
|
/// <summary>
|
|
/// Eindeutige Signatur des Empfängers
|
|
/// </summary>
|
|
public string? Signature { get; set; }
|
|
}
|
|
#endregion |