feat(Receiver): Entsprechend aktualisiert, um die Eigenschaften der Formularanwendung einzubeziehen

This commit is contained in:
Developer 02 2025-05-21 19:31:59 +02:00
parent 79204d4f6d
commit 39cc30f48b
19 changed files with 98 additions and 47 deletions

View File

@ -69,7 +69,7 @@ public class ResetEmailTemplateCommandHandler : IRequestHandler<ResetEmailTempla
new(){
Id = 4,
Name = "DocumentCompleted",
Body = "Guten Tag [NAME_RECEIVER],<br />\r\n<br />\r\nDer Signaturvorgang <B><I>'[DOCUMENT_TITLE]'</I></B> wurde erfolgreich abgeschlossen.<br />\r\n<br />\r\nSie erhalten das Dokument mit einem detaillierten Ergebnisbericht als Anhang zu dieser Email.<br />\r\n<br />\r\nMit freundlichen Grüßen<br />\r\n<br />\r\n[NAME_PORTAL]",
Body = "Guten Tag [NAME_RECEIVER],<br />\r\n<br />\r\nDer Signaturvorgang <B><I>'[DOCUMENT_TITLE]'</I></B> wurde erfolgreich abgeschlossen.<br />\r\n<br />\r\nSie erhalten das Dokument mit einem detaillierten Ergebnisbericht als Anhang zu dieser EmailAddress.<br />\r\n<br />\r\nMit freundlichen Grüßen<br />\r\n<br />\r\n[NAME_PORTAL]",
Subject = "Umschlag abgeschlossen: '[DOCUMENT_TITLE]'"
},
new(){

View File

@ -28,7 +28,7 @@ Public Class EmailData
''' <param name="pReceiver"></param>
''' <param name="pStatus"></param>
Public Sub New(pEnvelope As Envelope, pReceiver As Receiver, pStatus As Constants.EnvelopeStatus)
EmailAdress = pReceiver.Email
EmailAdress = pReceiver.EmailAddress
EmailSubject = String.Empty
EmailType = pStatus

View File

@ -1,8 +1,6 @@
Imports System.Drawing
Imports DevExpress.Utils.Svg
Imports DigitalData.Modules.Base
Imports EnvelopeGenerator.Domain.Constants
Imports Newtonsoft.Json
Public Class Receiver
Public Property Id As Integer = 0
@ -21,7 +19,7 @@ Public Class Receiver
Public Property JobTitle As String = ""
Public Property Email As String
Public Property EmailAddress As String
Public Property Status As ReceiverStatus
@ -46,7 +44,7 @@ Public Class Receiver
Public ReadOnly Property HasEmailAndName As Boolean
Get
Return String.IsNullOrWhiteSpace(Email) = False And
Return String.IsNullOrWhiteSpace(EmailAddress) = False And
String.IsNullOrWhiteSpace(Name) = False
End Get
End Property
@ -57,6 +55,6 @@ Public Class Receiver
Public Property PhoneNumber As String = ""
Public Function GetSignature() As String
Return StringEx.GetChecksum(Email.ToUpper)
Return StringEx.GetChecksum(EmailAddress.ToUpper)
End Function
End Class

View File

@ -334,7 +334,7 @@ Namespace Jobs
For Each oReceiver In pEnvelope.Receivers
If ActionService.CompleteEnvelope(pEnvelope, oReceiver) = False Then ', oAttachment
Logger.Error("Envelope could not be completed for receiver [{0}]", oReceiver.Email)
Logger.Error("Envelope could not be completed for receiver [{0}]", oReceiver.EmailAddress)
Return False
End If
Next

View File

@ -26,7 +26,7 @@ Public Class ReceiverModel
Return New Receiver() With {
.Id = pRow.ItemEx("GUID", 0),
.Email = pRow.ItemEx("EMAIL_ADDRESS", ""),
.EmailAddress = pRow.ItemEx("EMAIL_ADDRESS", ""),
.Name = pRow.ItemEx("NAME", ""),
.Sequence = pRow.ItemEx("SEQUENCE", 0),
.Signature = pRow.ItemEx("SIGNATURE", ""),
@ -46,7 +46,7 @@ Public Class ReceiverModel
Public Function TestReceiverExists(pReceiver As Receiver) As Boolean
Try
Dim oGuid = Database.GetScalarValue($"SELECT COALESCE(GUID, 0) FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{pReceiver.Email}'")
Dim oGuid = Database.GetScalarValue($"SELECT COALESCE(GUID, 0) FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{pReceiver.EmailAddress}'")
pReceiver.Id = oGuid
Return oGuid > 0
Catch ex As Exception
@ -66,19 +66,19 @@ Public Class ReceiverModel
([EMAIL_ADDRESS]
,[SIGNATURE])
VALUES
('{pReceiver.Email}'
('{pReceiver.EmailAddress}'
,'{pReceiver.GetSignature()}')"
Dim oCommand = New SqlCommand(oSql)
Dim oResult = Database.ExecuteNonQuery(oCommand)
If oResult = True Then
pReceiver.Id = GetReceiverIdByEmail(pReceiver.Email, pTransaction)
pReceiver.Id = GetReceiverIdByEmail(pReceiver.EmailAddress, pTransaction)
Return True
Else
Return False
End If
Else
Logger.Warn($"Receiver [{pReceiver.Email}] already existing! SignatureID: {oSignature} Check SQL {oCheck}")
Logger.Warn($"Receiver [{pReceiver.EmailAddress}] already existing! SignatureID: {oSignature} Check SQL {oCheck}")
Return True
End If
Catch ex As Exception
@ -208,7 +208,7 @@ Public Class ReceiverModel
Return New List(Of Receiver)
End If
Dim oAddresses = pReceiversFromGrid.Select(Function(r) $"'{r.Email}'").JoinToString(",")
Dim oAddresses = pReceiversFromGrid.Select(Function(r) $"'{r.EmailAddress}'").JoinToString(",")
Dim oSql = $"SELECT * FROM [dbo].[TBSIG_RECEIVER] WHERE EMAIL_ADDRESS IN ({oAddresses})"
Dim oTable = Database.GetDatatable(oSql)

View File

@ -320,7 +320,7 @@ Partial Public Class rptEnvelopeHistory
Me.XrTableCell19.StylePriority.UseBorders = False
Me.XrTableCell19.StylePriority.UseFont = False
Me.XrTableCell19.StylePriority.UseForeColor = False
Me.XrTableCell19.Text = "Email"
Me.XrTableCell19.Text = "EmailAddress"
Me.XrTableCell19.Weight = 0.11578820509129036R
'
'XrTableCell20
@ -329,7 +329,7 @@ Partial Public Class rptEnvelopeHistory
Me.XrTableCell20.BorderColor = System.Drawing.Color.Empty
Me.XrTableCell20.Borders = DevExpress.XtraPrinting.BorderSide.None
Me.XrTableCell20.Dpi = 254.0!
Me.XrTableCell20.ExpressionBindings.AddRange(New DevExpress.XtraReports.UI.ExpressionBinding() {New DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[Envelope].[User].[Email]")})
Me.XrTableCell20.ExpressionBindings.AddRange(New DevExpress.XtraReports.UI.ExpressionBinding() {New DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[Envelope].[User].[EmailAddress]")})
Me.XrTableCell20.Font = New System.Drawing.Font("Arial", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.XrTableCell20.ForeColor = System.Drawing.Color.Black
Me.XrTableCell20.Multiline = True

View File

@ -95,7 +95,7 @@ Public Class ActionService
End Function
Public Function OpenEnvelope(pEnvelope As Envelope, pReceiver As Receiver) As Boolean
Dim oUserReference = pReceiver.Email
Dim oUserReference = pReceiver.EmailAddress
If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.DocumentOpened, oUserReference) = False Then
Return False
@ -105,7 +105,7 @@ Public Class ActionService
End Function
Public Function RequestAccessCode(pEnvelope As Envelope, pReceiver As Receiver) As Boolean
Dim oUserReference = pReceiver.Email
Dim oUserReference = pReceiver.EmailAddress
If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.AccessCodeRequested, oUserReference) = False Then
Return False
@ -115,7 +115,7 @@ Public Class ActionService
End Function
Public Function EnterCorrectAccessCode(pEnvelope As Envelope, pReceiver As Receiver) As Boolean
Dim oUserReference = pReceiver.Email
Dim oUserReference = pReceiver.EmailAddress
If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.AccessCodeCorrect, oUserReference) = False Then
Return False
@ -125,7 +125,7 @@ Public Class ActionService
End Function
Public Function EnterIncorrectAccessCode(pEnvelope As Envelope, pReceiver As Receiver) As Boolean
Dim oUserReference = pReceiver.Email
Dim oUserReference = pReceiver.EmailAddress
If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.AccessCodeIncorrect, oUserReference) = False Then
Return False
@ -135,7 +135,7 @@ Public Class ActionService
End Function
Public Function SignEnvelope(pEnvelope As Envelope, pReceiver As Receiver) As Boolean
Dim oUserReference = pReceiver.Email
Dim oUserReference = pReceiver.EmailAddress
If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.DocumentSigned, oUserReference) = False Then
Return False
@ -153,7 +153,7 @@ Public Class ActionService
End Function
Public Function CompleteEnvelope(pEnvelope As Envelope, pReceiver As Receiver) As Boolean ', pAttachment As String
If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.MessageCompletionSent, pReceiver.Email) = False Then
If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.MessageCompletionSent, pReceiver.EmailAddress) = False Then
Return False
End If

View File

@ -43,7 +43,7 @@ Namespace My.Resources
Public Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EnvelopeGenerator.Common.Email", GetType(Email).Assembly)
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EnvelopeGenerator.Common.EmailAddress", GetType(Email).Assembly)
resourceMan = temp
End If
Return resourceMan

View File

@ -236,7 +236,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Die Email-Adresse [ @Mail ] konnte nicht validiert werden! ähnelt.
''' Sucht eine lokalisierte Zeichenfolge, die Die EmailAddress-Adresse [ @Mail ] konnte nicht validiert werden! ähnelt.
'''</summary>
Public Shared ReadOnly Property Error_email_Validation() As String
Get
@ -300,7 +300,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Mindestens ein Empfänger hat keine Anrede oder keine Email Adresse. ähnelt.
''' Sucht eine lokalisierte Zeichenfolge, die Mindestens ein Empfänger hat keine Anrede oder keine EmailAddress Adresse. ähnelt.
'''</summary>
Public Shared ReadOnly Property Incomplete_Receivers() As String
Get
@ -309,11 +309,11 @@ Namespace My.Resources
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Empfänger {0} hat keine gültige Email Addresse. ähnelt.
''' Sucht eine lokalisierte Zeichenfolge, die Empfänger {0} hat keine gültige EmailAddress Addresse. ähnelt.
'''</summary>
Public Shared ReadOnly Property Invalid_Email_Address() As String
Get
Return ResourceManager.GetString("Invalid Email Address", resourceCulture)
Return ResourceManager.GetString("Invalid EmailAddress Address", resourceCulture)
End Get
End Property

View File

@ -134,7 +134,7 @@ namespace EnvelopeGenerator.Domain.Entities
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>();
public IEnumerable<Receiver> Receivers { get; set; } = new List<Receiver>();
/// <summary>
/// Validates whether the receiver and document data are complete.

View File

@ -1,5 +1,7 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Drawing;
using DigitalData.Modules.Base;
#if NETFRAMEWORK
using System;
using System.Collections.Generic;
@ -34,5 +36,55 @@ namespace EnvelopeGenerator.Domain.Entities
public DateTime TfaRegDeadline { get; set; }
public IEnumerable<EnvelopeReceiver> EnvelopeReceivers { get; set; }
[NotMapped]
public string Name { get; set; }
[NotMapped]
public string Company { get; set; } = string.Empty;
[NotMapped]
public string JobTitle { get; set; } = string.Empty;
[NotMapped]
public string PhoneNumber { get; set; } = string.Empty;
[NotMapped]
public string AccessCode { get; set; } = string.Empty;
[NotMapped]
public string PrivateMessage { get; set; } = string.Empty;
[NotMapped]
public int Sequence { get; set; } = 0;
[NotMapped]
public DateTime SignedDate { get; set; } = DateTime.MinValue;
[NotMapped]
public Constants.ReceiverStatus Status { get; set; }
[NotMapped]
public Constants.ColorType ColorType { get; set; }
[NotMapped]
public bool HasId => Id > 0;
[NotMapped]
public bool HasEmailAndName =>
!string.IsNullOrWhiteSpace(EmailAddress) &&
!string.IsNullOrWhiteSpace(Name);
[NotMapped]
public string SignedDateDisplayValue =>
SignedDate == DateTime.MinValue ? "-" : SignedDate.ToString("G");
[NotMapped]
public Color Color => Helpers.ColorTypeToColor(ColorType);
public string GetSignature()
{
return StringEx.GetChecksum(EmailAddress?.ToUpperInvariant() ?? string.Empty);
}
}
}

View File

@ -20,6 +20,7 @@
<ItemGroup>
<PackageReference Include="DigitalData.EmailProfilerDispatcher.Abstraction.Attributes" Version="1.0.0" />
<PackageReference Include="DigitalData.Modules.Base" Version="1.3.8" />
</ItemGroup>
<ItemGroup>

View File

@ -91,12 +91,12 @@ Public Class EnvelopeEditorController
Public Function SaveReceivers(pEnvelope As Envelope, pReceiversFromGrid As List(Of Receiver)) As Boolean
Dim oExistingReceivers As List(Of Receiver) = ReceiverModel.ListReceivers(pReceiversFromGrid).ToList()
Dim oExistingAddresses = oExistingReceivers.Select(Function(r) r.Email)
Dim oExistingAddresses = oExistingReceivers.Select(Function(r) r.EmailAddress)
Logger.Debug($"oExistingReceivers.count: {oExistingReceivers.Count}")
Logger.Debug($"oExistingAddresses.count: {oExistingAddresses.Count}")
Dim oNewReceivers = pReceiversFromGrid.Where(Function(r)
If r.Email Is Nothing Then Return False
Return Not oExistingAddresses.Contains(r.Email)
If r.EmailAddress Is Nothing Then Return False
Return Not oExistingAddresses.Contains(r.EmailAddress)
End Function).ToList()
Logger.Debug($"oNewReceivers.count: {oNewReceivers.Count}")
If CreateNewReceivers(oNewReceivers) = False Then
@ -108,10 +108,10 @@ Public Class EnvelopeEditorController
pEnvelope.Receivers.Clear()
For Each oReceiver In pReceiversFromGrid
If oReceiver.Email Is Nothing Then Continue For
If oReceiver.EmailAddress Is Nothing Then Continue For
If oReceiver.Name Is Nothing Then Continue For
Dim oDbReceiver = oAllReceivers.Where(Function(r) r.Email = oReceiver.Email).SingleOrDefault()
Dim oDbReceiver = oAllReceivers.Where(Function(r) r.EmailAddress = oReceiver.EmailAddress).SingleOrDefault()
If oDbReceiver IsNot Nothing Then
oReceiver.Id = oDbReceiver.Id
oReceiver.Signature = oDbReceiver.Signature

View File

@ -318,7 +318,7 @@ Partial Public Class frmEnvelopeEditor
Me.txtCreatorEmailLabel.ImageOptions.SvgImage = CType(resources.GetObject("txtCreatorEmailLabel.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.txtCreatorEmailLabel.Name = "txtCreatorEmailLabel"
Me.txtCreatorEmailLabel.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
Me.txtCreatorEmailLabel.Tag = "Absender Email: {0}"
Me.txtCreatorEmailLabel.Tag = "Absender EmailAddress: {0}"
'
'txtEnvelopeIdLabel2
'
@ -526,7 +526,7 @@ Partial Public Class frmEnvelopeEditor
'colEmail
'
Me.colEmail.ColumnEdit = Me.RepositoryItemComboBox1
Me.colEmail.FieldName = "Email"
Me.colEmail.FieldName = "EmailAddress"
Me.colEmail.Name = "colEmail"
Me.colEmail.OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.[False]
resources.ApplyResources(Me.colEmail, "colEmail")

View File

@ -25,7 +25,7 @@ Partial Public Class frmEnvelopeEditor
Private Logger As Logger
Private Const COL_NAME = "Name"
Private Const COL_EMAIL = "Email"
Private Const COL_EMAIL = "EmailAddress"
Private Const COL_CODE = "AccessCode"
Private Const COL_PHONE = "PhoneNumber"
Public Property State As State
@ -306,7 +306,7 @@ Partial Public Class frmEnvelopeEditor
End If
For Each Receiver In Receivers
If Helpers.IsValidEmailAddress(Receiver.Email) = False Then
If Helpers.IsValidEmailAddress(Receiver.EmailAddress) = False Then
oErrors.Add(String.Format(Resources.Envelope.Invalid_Email_Address, Receiver.Name))
End If
Next

View File

@ -231,7 +231,7 @@ Partial Class frmMain
'ColEmail
'
resources.ApplyResources(Me.ColEmail, "ColEmail")
Me.ColEmail.FieldName = "Email"
Me.ColEmail.FieldName = "EmailAddress"
Me.ColEmail.Name = "ColEmail"
Me.ColEmail.OptionsColumn.AllowEdit = False
'
@ -618,7 +618,7 @@ Partial Class frmMain
'ColEmailCompleted
'
resources.ApplyResources(Me.ColEmailCompleted, "ColEmailCompleted")
Me.ColEmailCompleted.FieldName = "Email"
Me.ColEmailCompleted.FieldName = "EmailAddress"
Me.ColEmailCompleted.Name = "ColEmailCompleted"
'
'ColSignedDateCompleted

View File

@ -386,7 +386,7 @@ Public Class frmMain
If oView.Name = ViewReceivers.Name Then
Dim oReceiver As Receiver = oView.GetRow(oView.FocusedRowHandle)
Dim oEnvelopeTitle As String = Net.WebUtility.UrlEncode(oEnvelope.Title)
Process.Start($"mailto:{oReceiver.Email}?subject={oEnvelopeTitle}")
Process.Start($"mailto:{oReceiver.EmailAddress}?subject={oEnvelopeTitle}")
Else
MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text)
End If
@ -571,7 +571,7 @@ Public Class frmMain
Dim mailto As String = "mailto:support-flow@digitaldata.works"
Dim subject As String = Uri.EscapeDataString("signFLOW - Envelope issue - ID: " & oEnvelope.Id)
Dim body As String = Uri.EscapeDataString($"Dear Digital Data Team," & vbCrLf & "There is an error or misbehavin with following envelope and Receiver:" & vbCrLf &
$"Envelope-ID:{oEnvelope.Id}" & vbCrLf & $"Receiver: {oReceiver.Email}" & vbCrLf & "Issue/Description: Please describe the issue in Your own words...")
$"Envelope-ID:{oEnvelope.Id}" & vbCrLf & $"Receiver: {oReceiver.EmailAddress}" & vbCrLf & "Issue/Description: Please describe the issue in Your own words...")
Dim mailtoUri As String = $"{mailto}?subject={subject}&body={body}"
@ -611,9 +611,9 @@ Public Class frmMain
Dim Receivers As New BindingList(Of Receiver)
Receivers = New BindingList(Of Receiver)(oController.Envelope.Receivers)
For Each oReceiver As Receiver In Receivers
If oReceiver.Email = selReceiver.Email Then
If oReceiver.EmailAddress = selReceiver.EmailAddress Then
If oController.ActionService.ResendReceiver(oEnvelope, oReceiver) = True Then
Dim oMsg = Resources.Envelope.Invitation_successfully_resend.Replace("@Mail", oReceiver.Email)
Dim oMsg = Resources.Envelope.Invitation_successfully_resend.Replace("@Mail", oReceiver.EmailAddress)
MsgBox(oMsg, MsgBoxStyle.Information, Text)
End If
@ -781,12 +781,12 @@ Public Class frmMain
If oView.Name = ViewReceivers.Name Then
Dim oReceiver As Receiver = oView.GetRow(oView.FocusedRowHandle)
Dim oEnvelopeTitle As String = Net.WebUtility.UrlEncode(oEnvelope.Title)
Dim oDT As DataTable = DB_DD_ECM.GetDatatable($"SELECT * FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{oReceiver.Email}'")
Dim oDT As DataTable = DB_DD_ECM.GetDatatable($"SELECT * FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{oReceiver.EmailAddress}'")
If Not IsNothing(oDT) Then
If oDT.Rows.Count = 1 Then
Dim oTFA_REG_DL = oDT.Rows(0).Item("TFA_REG_DEADLINE")
Dim oTOTP = oDT.Rows(0).Item("TOTP_SECRET_KEY")
Dim oForm As New frm2Factor_Properties(oReceiver.Email, oTOTP, oTFA_REG_DL, DB_DD_ECM)
Dim oForm As New frm2Factor_Properties(oReceiver.EmailAddress, oTOTP, oTFA_REG_DL, DB_DD_ECM)
oForm.ShowDialog()
End If
End If

View File

@ -38,7 +38,7 @@ namespace EnvelopeGenerator.Web.Controllers
var authReceiverMail = this.GetAuthReceiverMail();
if (authReceiverMail is null)
{
_logger.LogError("Email clam is not found in envelope-receiver-read-only creation process. Create DTO is:\n {dto}", JsonConvert.SerializeObject(createDto));
_logger.LogError("EmailAddress clam is not found in envelope-receiver-read-only creation process. Create DTO is:\n {dto}", JsonConvert.SerializeObject(createDto));
return Unauthorized();
}

View File

@ -86,7 +86,7 @@ namespace EnvelopeGenerator.Web.Services
throw new NullReferenceException("Receiver not found");
}
_logger.LogInformation("Loading documents for receiver [{0}]", receiver.Email);
_logger.LogInformation("Loading documents for receiver [{0}]", receiver.EmailAddress);
// filter elements by receiver
envelope.Documents = envelope.Documents.Select((document) =>