Added "Please read and confirm this document" to resource files and updated resource class. Replaced Envelope constructor with WithDefaultMessage extension method to set default message based on EnvelopeTypeId. Updated controller and editor form to use this method. Cleaned up imports and comments.
195 lines
6.7 KiB
C#
195 lines
6.7 KiB
C#
using DigitalData.UserManager.Domain.Entities;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using EnvelopeGenerator.Domain;
|
|
|
|
#if NETFRAMEWORK
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
#endif
|
|
|
|
namespace EnvelopeGenerator.Domain.Entities
|
|
{
|
|
[Table("TBSIG_ENVELOPE", Schema = "dbo")]
|
|
public class Envelope
|
|
{
|
|
// removed: WithDefaultMessage()
|
|
|
|
// 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; }
|
|
|
|
[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 Title { get; set; } = string.Empty;
|
|
|
|
[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
|
|
[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; } = "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;
|
|
|
|
[NotMapped]
|
|
public string StatusTranslated
|
|
{
|
|
get
|
|
{
|
|
var statusName = ((Constants.EnvelopeStatus)Status).ToString();
|
|
var rescourceManager = My.Resources.Model.ResourceManager;
|
|
|
|
if (this.IsReadAndSign() && rescourceManager.GetString(statusName + "4RaC") is string translationRaC)
|
|
return translationRaC;
|
|
|
|
return rescourceManager.GetString(statusName);
|
|
}
|
|
}
|
|
|
|
[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
|
|
[NotMapped]
|
|
public List<EnvelopeDocument> Documents { get; set; } = new List<EnvelopeDocument>();
|
|
|
|
// TODO: * Check the Form App and remove the default value
|
|
[NotMapped]
|
|
public List<EnvelopeHistory> History { get; set; } = new List<EnvelopeHistory>();
|
|
|
|
// TODO: * Check the Form App and remove the default value
|
|
[NotMapped]
|
|
public List<Receiver> Receivers { get; set; } = new List<Receiver>();
|
|
|
|
/// <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;
|
|
}
|
|
}
|
|
|
|
public static class Extensions
|
|
{
|
|
public static bool IsReadAndSign(this Envelope envelope)
|
|
{
|
|
return envelope.EnvelopeTypeId == 2;
|
|
}
|
|
}
|
|
} |