using DigitalData.UserManager.Domain.Entities; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; #if NETFRAMEWORK using System; using System.Collections.Generic; using System.Linq; #endif namespace EnvelopeGenerator.Domain.Entities { [Table("TBSIG_ENVELOPE", Schema = "dbo")] public class Envelope { // TODO: * Check the Form App and remove the default value [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Column("GUID")] public int Id { get; set; } = 0; [Required] [Column("USER_ID")] public int UserId { get; set; } // TODO: * Check the Form App and remove the default value [Required] [Column("STATUS")] public int Status { get; set; } = (int)Constants.EnvelopeStatus.EnvelopeCreated; [NotMapped] public string StatusName => ((Constants.EnvelopeStatus)Status).ToString(); // TODO: The default value is set to 0. Check the Form App to remove this [Required] [Column("ENVELOPE_UUID", TypeName = "nvarchar(36)")] public string Uuid { get; set; } = Guid.NewGuid().ToString(); // TODO: * Check the Form App and remove the default value [Column("MESSAGE", TypeName = "nvarchar(max)")] public string Message { get; set; } #if NETFRAMEWORK = My.Resources.Envelope.Please_read_and_sign_this_document; #endif [Column("EXPIRES_WHEN", TypeName = "datetime")] public DateTime? ExpiresWhen { get; set; } [Column("EXPIRES_WARNING_WHEN", TypeName = "datetime")] public DateTime? ExpiresWarningWhen { get; set; } [Required] [Column("ADDED_WHEN", TypeName = "datetime")] public DateTime AddedWhen { get; set; } [Column("CHANGED_WHEN", TypeName = "datetime")] public DateTime? ChangedWhen { get; set; } // TODO: * Check the Form App and remove the default value [Column("TITLE", TypeName = "nvarchar(128)")] public string #if NET ? #endif Title { get; set; } #if NETFRAMEWORK = string.Empty; #endif [Column("COMMENT", TypeName = "nvarchar(128)")] public string Comment { get; set; } = string.Empty; [Column("CONTRACT_TYPE")] public int? ContractType { get; set; } // TODO: * Check the Form App and remove the default value #if NETFRAMEWORK [NotMapped] public string ContractTypeTranslated => My.Resources.Model.ResourceManager.GetString(ContractType.ToString()); #endif // TODO: * Check the Form App and remove the default value [Column("LANGUAGE", TypeName = "nvarchar(5)")] public string Language { get; set; } = "de-DE"; // TODO: * Check the Form App and remove the default value [Column("SEND_REMINDER_EMAILS")] public bool SendReminderEmails { get; set; } = false; // TODO: * Check the Form App and remove the default value [Column("FIRST_REMINDER_DAYS")] public int? FirstReminderDays { get; set; } = 0; // TODO: * Check the Form App and remove the default value [Column("REMINDER_INTERVAL_DAYS")] public int? ReminderIntervalDays { get; set; } = 0; [Column("ENVELOPE_TYPE")] public int? EnvelopeTypeId { get; set; } // TODO: * Check the Form App and remove the default value [Column("CERTIFICATION_TYPE")] public int? CertificationType { get; set; } = (int)Constants.CertificationType.AdvancedElectronicSignature; // TODO: * Check the Form App and remove the default value [Column("USE_ACCESS_CODE")] public bool UseAccessCode { get; set; } = false; [Column("FINAL_EMAIL_TO_CREATOR")] public int? FinalEmailToCreator { get; set; } [Column("FINAL_EMAIL_TO_RECEIVERS")] public int? FinalEmailToReceivers { get; set; } [Column("EXPIRES_WHEN_DAYS")] public int? ExpiresWhenDays { get; set; } [Column("EXPIRES_WARNING_WHEN_DAYS")] public int? ExpiresWarningWhenDays { get; set; } // TODO: * Check the Form App and remove the default value [Column("TFA_ENABLED", TypeName = "bit")] public bool TFAEnabled { get; set; } = false; [Column("DOC_RESULT", TypeName = "varbinary(max)")] public byte[] DocResult { get; set; } [NotMapped] public string CURRENT_WORK_APP { get; set; } = "signFLOW GUI"; // TODO: * Check the Form App and remove the default value [ForeignKey("UserId")] public User User { get; set; } [ForeignKey("EnvelopeTypeId")] public EnvelopeType EnvelopeType { get; set; } [NotMapped] public string EnvelopeTypeTitle => EnvelopeType?.Title; [NotMapped] public bool IsAlreadySent => Status > (int)Constants.EnvelopeStatus.EnvelopeSaved; #if NETFRAMEWORK [NotMapped] public string StatusTranslated => My.Resources.Model.ResourceManager.GetString(((Constants.EnvelopeStatus)Status).ToString()); #endif [NotMapped] public bool TFA_Enabled { get; set; } = false; [NotMapped] public byte[] DOC_RESULT { get; set; } // TODO: * Check the Form App and remove the default value public List Documents { get; set; } = new List(); // TODO: * Check the Form App and remove the default value public List History { get; set; } = new List(); // TODO: * Check the Form App and remove the default value [NotMapped] public List Receivers { get; set; } = new List(); /// /// Validates whether the receiver and document data are complete. /// public List ValidateReceiverDocumentData() { var errors = new List(); if (!Documents?.Any() ?? true) errors.Add(My.Resources.Envelope.Missing_Documents); if (!Receivers?.Any() ?? true) errors.Add(My.Resources.Envelope.Missing_Receivers); if (Receivers?.Any(r => !r.HasEmailAndName) ?? false) errors.Add(My.Resources.Envelope.Incomplete_Receivers); return errors; } } }