- `IUnique`-Schnittstelle zu allen Entitäten im Domain-Projekt hinzugefügt. - `Core.Infrastructure` auf Version 2.0.0.0 im Infrastructure-Layer aktualisiert. - Domain-Projekt mit `Core.Abstraction` für verbesserte Abstraktion erweitert.
60 lines
1.8 KiB
C#
60 lines
1.8 KiB
C#
using DigitalData.Core.Abstractions;
|
|
using DigitalData.UserManager.Domain.Entities;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using static EnvelopeGenerator.Common.Constants;
|
|
|
|
namespace EnvelopeGenerator.Domain.Entities
|
|
{
|
|
[Table("TBSIG_ENVELOPE_HISTORY", Schema = "dbo")]
|
|
public class EnvelopeHistory : IUnique<long>
|
|
{
|
|
[Key]
|
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
[Column("GUID")]
|
|
public long Id { get; set; }
|
|
|
|
[Required]
|
|
[Column("ENVELOPE_ID")]
|
|
public int EnvelopeId { get; set; }
|
|
|
|
[Required]
|
|
[Column("USER_REFERENCE", TypeName = "nvarchar(128)")]
|
|
public required string UserReference { get; init; }
|
|
|
|
[Required]
|
|
[Column("STATUS")]
|
|
public int Status { get; set; }
|
|
|
|
[Required]
|
|
[Column("ADDED_WHEN", TypeName = "datetime")]
|
|
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
|
|
public DateTime AddedWhen { get; set; }
|
|
|
|
[Column("ACTION_DATE", TypeName = "datetime")]
|
|
public DateTime? ActionDate { get; set; }
|
|
|
|
[Column("COMMENT", TypeName = "nvarchar(max)")]
|
|
public string? Comment { get; set; }
|
|
|
|
[ForeignKey("UserReference")]
|
|
public virtual User? Sender { get; set; }
|
|
|
|
[ForeignKey("UserReference")]
|
|
public virtual Receiver? Receiver { get; set; }
|
|
|
|
[NotMapped]
|
|
public ReferenceType ReferenceType => (Status / 1000) switch
|
|
{
|
|
1 => ReferenceType.Sender,
|
|
2 or 3 => ReferenceType.Receiver,
|
|
_ => ReferenceType.Unknown,
|
|
};
|
|
|
|
[NotMapped]
|
|
public string? StatusName
|
|
=> (Enum.IsDefined(typeof(EnvelopeStatus), Status))
|
|
? Enum.GetName(typeof(EnvelopeStatus), Status)
|
|
: null;
|
|
}
|
|
} |