using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using EnvelopeGenerator.Domain.Interfaces; #if NETFRAMEWORK using System; #endif namespace EnvelopeGenerator.Domain.Entities #if NET ; #elif NETFRAMEWORK { #endif [Table("TBSIG_ENVELOPE_RECEIVER", Schema = "dbo")] public class EnvelopeReceiver : IHasEnvelope, IHasReceiver { 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 NET ? #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 Id => Tuple.Create(EnvelopeId, ReceiverId); [NotMapped] public bool HasPhoneNumber => !string.IsNullOrWhiteSpace(PhoneNumber); [ForeignKey("EnvelopeId")] public Envelope #if NET ? #endif Envelope { get; set; } [ForeignKey("ReceiverId")] public Receiver #if NET ? #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