Introduced interfaces for audit fields (AddedWhen, ChangedWhen, ChangedWho, AddedWho) and updated domain entities to implement them. Adjusted properties for consistency and nullability. Updated MappingProfile to map audit fields between DTOs and entities. Improves auditability and standardization across the domain model.
104 lines
2.5 KiB
C#
104 lines
2.5 KiB
C#
using System;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using DigitalData.Core.Abstractions.Interfaces;
|
|
using EnvelopeGenerator.Domain.Interfaces;
|
|
|
|
#if NETFRAMEWORK
|
|
#endif
|
|
|
|
namespace EnvelopeGenerator.Domain.Entities
|
|
#if NET
|
|
;
|
|
#elif NETFRAMEWORK
|
|
{
|
|
#endif
|
|
|
|
[Table("TBSIG_ENVELOPE_RECEIVER", Schema = "dbo")]
|
|
public class EnvelopeReceiver : IHasEnvelope, IHasReceiver, IEntity, IHasAddedWhen, IHasChangedWhen
|
|
{
|
|
public EnvelopeReceiver()
|
|
{
|
|
#if NETFRAMEWORK
|
|
CompanyName = string.Empty;
|
|
#endif
|
|
}
|
|
|
|
[Column("ENVELOPE_ID")]
|
|
public int EnvelopeId { get; set; }
|
|
|
|
[Column("RECEIVER_ID")]
|
|
public int ReceiverId { get; set; }
|
|
|
|
[Required]
|
|
[Column("SEQUENCE")]
|
|
public int Sequence { get; set; }
|
|
|
|
[Column("NAME", TypeName = "nvarchar(128)")]
|
|
public string Name { get; set; }
|
|
|
|
[Column("JOB_TITLE", TypeName = "nvarchar(128)")]
|
|
public string JobTitle { get; set; }
|
|
|
|
[Column("COMPANY_NAME", TypeName = "nvarchar(128)")]
|
|
public string
|
|
#if nullable
|
|
?
|
|
#endif
|
|
CompanyName { get; set; }
|
|
|
|
[Column("PRIVATE_MESSAGE", TypeName = "nvarchar(max)")]
|
|
public string PrivateMessage { get; set; }
|
|
|
|
[Column("ACCESS_CODE", TypeName = "nvarchar(64)")]
|
|
public string AccessCode { get; set; }
|
|
|
|
[Required]
|
|
[Column("ADDED_WHEN", TypeName = "datetime")]
|
|
public DateTime AddedWhen { get; set; }
|
|
|
|
[Column("CHANGED_WHEN", TypeName = "datetime")]
|
|
public DateTime? ChangedWhen { get; set; }
|
|
|
|
[Column("PHONE_NUMBER")]
|
|
[StringLength(20)]
|
|
[RegularExpression(@"^\+[0-9]+$", ErrorMessage = "Phone number must start with '+' followed by digits.")]
|
|
public string PhoneNumber { get; set; }
|
|
|
|
[NotMapped]
|
|
public Tuple<int, int> Id => Tuple.Create(EnvelopeId, ReceiverId);
|
|
|
|
[NotMapped]
|
|
public bool HasPhoneNumber => !string.IsNullOrWhiteSpace(PhoneNumber);
|
|
|
|
[ForeignKey("EnvelopeId")]
|
|
public Envelope
|
|
#if nullable
|
|
?
|
|
#endif
|
|
Envelope { get; set; }
|
|
|
|
[ForeignKey("ReceiverId")]
|
|
public Receiver
|
|
#if nullable
|
|
?
|
|
#endif
|
|
Receiver { get; set; }
|
|
|
|
#region Model of old serice
|
|
[NotMapped]
|
|
public Constants.ReceiverStatus Status { get; set; }
|
|
|
|
[NotMapped]
|
|
public bool HasId => Id.Item1 > 0 && Id.Item2 > 0;
|
|
|
|
[NotMapped]
|
|
public bool HasEmailAndName =>
|
|
!string.IsNullOrWhiteSpace(Receiver.EmailAddress) &&
|
|
!string.IsNullOrWhiteSpace(Name);
|
|
#endregion
|
|
}
|
|
|
|
#if NETFRAMEWORK
|
|
}
|
|
#endif |