refactor(Domain.Entites.Envelope): Aktualisiert, um Common.Entities.Envelope zu enthalten

This commit is contained in:
Developer 02
2025-05-21 18:18:40 +02:00
parent 55ffe40c46
commit 93dbe63fb4
15 changed files with 2896 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
using System.Collections.Generic;
using System.Linq;
#endif
namespace EnvelopeGenerator.Domain.Entities
@@ -10,28 +11,32 @@ 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; }
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; }
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; }
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; }
public string Message { get; set; } = My.Resources.Envelope.Please_read_and_sign_this_document;
[Column("EXPIRES_WHEN", TypeName = "datetime")]
public DateTime ExpiresWhen { get; set; }
@@ -46,32 +51,43 @@ namespace EnvelopeGenerator.Domain.Entities
[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 Title { get; set; }
public string Title { get; set; } = string.Empty;
[Column("CONTRACT_TYPE")]
public int ContractType { get; set; }
// TODO: * Check the Form App and remove the default value
[NotMapped]
public string ContractTypeTranslated => My.Resources.Model.ResourceManager.GetString(ContractType.ToString());
// TODO: * Check the Form App and remove the default value
[Column("LANGUAGE", TypeName = "nvarchar(5)")]
public string Language { get; set; }
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; }
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; }
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; }
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; }
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; }
public bool UseAccessCode { get; set; } = false;
[Column("FINAL_EMAIL_TO_CREATOR")]
public int FinalEmailToCreator { get; set; }
@@ -85,29 +101,55 @@ namespace EnvelopeGenerator.Domain.Entities
[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; }
public bool TFAEnabled { get; set; } = false;
[Column("DOC_RESULT", TypeName = "varbinary(max)")]
public byte[] DocResult { get; set; }
/// <summary>
/// The sender of envelope
/// </summary>
[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; }
public User User { get; set; } = new User();
[ForeignKey("EnvelopeTypeId")]
public EnvelopeType EnvelopeType { get; set; }
[NotMapped]
public string EnvelopeTypeTitle => EnvelopeType.Title;
public string EnvelopeTypeTitle => EnvelopeType?.Title;
[NotMapped]
public bool IsAlreadySent => Status > (int)Constants.EnvelopeStatus.EnvelopeSaved;
public IEnumerable<EnvelopeDocument> Documents { get; set; }
// TODO: * Check the Form App and remove the default value
public IEnumerable<EnvelopeDocument> Documents { get; set; } = new List<EnvelopeDocument>();
public IEnumerable<EnvelopeHistory> History { get; set; }
// TODO: * Check the Form App and remove the default value
public IEnumerable<EnvelopeHistory> History { get; set; } = new List<EnvelopeHistory>();
// TODO: * Check the Form App and remove the default value
public IEnumerable<EnvelopeReceiver> Receivers { get; set; } = new List<EnvelopeReceiver>();
/// <summary>
/// Validates whether the receiver and document data are complete.
/// </summary>
public List<string> ValidateReceiverDocumentData()
{
var errors = new List<string>();
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;
}
}
}