diff --git a/EnvelopeGenerator.Common/Constants.vb b/EnvelopeGenerator.Common/Constants.vb
index 0e0d3933..a3c6fa73 100644
--- a/EnvelopeGenerator.Common/Constants.vb
+++ b/EnvelopeGenerator.Common/Constants.vb
@@ -12,12 +12,16 @@
EnvelopeArchived = 1007
EnvelopeTransmittedDMS = 1008
EnvelopeDeleted = 1009
- DocumentOpened = 2001
- DocumentSigned = 2002
- SignatureConfirmed = 2003
+ AccessCodeRequested = 2001
+ AccessCodeCorrect = 2002
+ AccessCodeIncorrect = 2003
+ DocumentOpened = 2004
+ DocumentSigned = 2005
+ SignatureConfirmed = 2006
MessageInvitationSent = 3001 ' Wird von Trigger verwendet
- MessageConfirmationSent = 3002
- MessageDeletionSent = 3003
+ MessageAccessCodeSent = 3002
+ MessageConfirmationSent = 3003
+ MessageDeletionSent = 3004
End Enum
Public Enum ElementStatus
diff --git a/EnvelopeGenerator.Common/Entities/EmailData.vb b/EnvelopeGenerator.Common/Entities/EmailData.vb
index 2eae980b..673f3a1f 100644
--- a/EnvelopeGenerator.Common/Entities/EmailData.vb
+++ b/EnvelopeGenerator.Common/Entities/EmailData.vb
@@ -7,10 +7,11 @@ Public Class EmailData
Public Property ReferenceID As Integer
Public Property ReferenceString As String
-
+ Public Property ReceiverAccessCode As String
Public Property ReceiverName As String
Public Property SenderName As String
Public Property SenderAdress As String
+
Public Property SignatureLink As String
Public Property Message As String
Public Property EnvelopeTitle As String
@@ -23,14 +24,10 @@ Public Class EmailData
ReferenceID = pEnvelope.Id
ReferenceString = pEnvelope.Uuid
ReceiverName = pReceiver.Name
+ ReceiverAccessCode = pReceiver.AccessCode
SenderAdress = pEnvelope.User.Email
SenderName = pEnvelope.User.FullName
EnvelopeTitle = pEnvelope.Title
End Sub
- Public Sub New()
- End Sub
-
-
-
End Class
diff --git a/EnvelopeGenerator.Common/Entities/EmailTemplate.vb b/EnvelopeGenerator.Common/Entities/EmailTemplate.vb
index c870b966..b66801df 100644
--- a/EnvelopeGenerator.Common/Entities/EmailTemplate.vb
+++ b/EnvelopeGenerator.Common/Entities/EmailTemplate.vb
@@ -5,11 +5,13 @@ Public Class EmailTemplate
Private _DocumentSignedBodyTemplate As List(Of String)
Private _DocumentCompletedBodyTemplate As List(Of String)
Private _DocumentDeletedBodyTemplate As List(Of String)
+ Private _DocumentAccessCodeReceivedBodyTemplate As List(Of String)
Private _DocumentReceivedSubjectTemplate As String
Private _DocumentSignedSubjectTemplate As String
Private _DocumentDeletedSubjectTemplate As String
Private _DocumentCompletedSubjectTemplate As String
+ Private _DocumentAccessCodeReceivedSubjectTemplate As String
Private _replaceDictionary As Dictionary(Of String, String)
@@ -27,6 +29,8 @@ Public Class EmailTemplate
_DocumentSignedSubjectTemplate = "Dokument unterschrieben: '[DOCUMENT_TITLE]'"
_DocumentDeletedSubjectTemplate = "Vorgang zurückgezogen: '[DOCUMENT_TITLE]'"
_DocumentCompletedSubjectTemplate = "Vorgang abgeschlossen: '[DOCUMENT_TITLE]'"
+ _DocumentAccessCodeReceivedSubjectTemplate = "Dokument Passwort erhalten: '[DOCUMENT_TITLE]'"
+
End Sub
Private Sub InitBodyTemplates()
@@ -44,6 +48,7 @@ Public Class EmailTemplate
}
'_DocumentReceivedBodyTemplate = Common.My.Resources.email_de.Split(vbNewLine).ToList()
+ '_DocumentAccessCodeReceivedBodyTemplate = Common.My.Resources.
_DocumentSignedBodyTemplate = New List(Of String) From {
"Guten Tag [NAME_RECEIVER]",
@@ -72,6 +77,18 @@ Public Class EmailTemplate
"Vielen Dank für die Nutzung von",
"[NAME_PORTAL]"
}
+
+ _DocumentAccessCodeReceivedBodyTemplate = New List(Of String) From {
+ "Guten Tag [NAME_RECEIVER]",
+ "",
+ "[NAME_SENDER] hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet. ",
+ "Verwenden Sie das folgende Passwort, um das Dokument einzusehen:",
+ "",
+ "[DOCUMENT_ACCESS_CODE]",
+ "",
+ "Vielen Dank für die Nutzung von",
+ "[NAME_PORTAL]"
+ }
End Sub
Private Sub InitDictionary(pEmailData As EmailData)
@@ -83,7 +100,8 @@ Public Class EmailTemplate
{"[LINK_TO_DOCUMENT]", pEmailData.SignatureLink},
{"[LINK_TO_DOCUMENT_TEXT]", $"{pEmailData.SignatureLink.Truncate(40)}.."},
{"[DOCUMENT_TITLE]", pEmailData.EnvelopeTitle},
- {"[MESSAGE]", pEmailData.Message}
+ {"[MESSAGE]", pEmailData.Message},
+ {"[DOCUMENT_ACCESS_CODE]", pEmailData.ReceiverAccessCode}
}
End Sub
@@ -107,7 +125,12 @@ Public Class EmailTemplate
FillEmailSubject(pEmailData, _DocumentCompletedSubjectTemplate)
End Sub
- Public Sub FillEmailSubject(pEmailData As EmailData, pTemplate As String)
+ Public Sub FillDocumentAccessCodeReceivedEmailBody(pEmailData As EmailData)
+ FillEmailBody(pEmailData, _DocumentAccessCodeReceivedBodyTemplate)
+ FillEmailSubject(pEmailData, _DocumentAccessCodeReceivedSubjectTemplate)
+ End Sub
+
+ Private Sub FillEmailSubject(pEmailData As EmailData, pTemplate As String)
InitDictionary(pEmailData)
Dim oSubject As String = pTemplate
@@ -122,7 +145,7 @@ Public Class EmailTemplate
pEmailData.EmailSubject = oSubject
End Sub
- Public Sub FillEmailBody(pEmailData As EmailData, pTemplate As List(Of String))
+ Private Sub FillEmailBody(pEmailData As EmailData, pTemplate As List(Of String))
InitDictionary(pEmailData)
Dim oBody As String = ""
diff --git a/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj b/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj
index 39da6d18..690e07db 100644
--- a/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj
+++ b/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj
@@ -277,6 +277,7 @@
PreserveNewest
+
diff --git a/EnvelopeGenerator.Common/Models/ReceiverModel.vb b/EnvelopeGenerator.Common/Models/ReceiverModel.vb
index d02fd76b..9d91c796 100644
--- a/EnvelopeGenerator.Common/Models/ReceiverModel.vb
+++ b/EnvelopeGenerator.Common/Models/ReceiverModel.vb
@@ -32,6 +32,7 @@ Public Class ReceiverModel
.Signature = pRow.ItemEx("SIGNATURE", ""),
.Status = ReceiverSignedStatus,
.ColorType = DirectCast(pColorIndex + 1, ColorType),
+ .AccessCode = pRow.ItemEx("ACCESS_CODE", ""),
.SignedDate = SignedDate
}
End Function
@@ -261,10 +262,11 @@ Public Class ReceiverModel
End Try
End Function
- Private Function GetSignedDate(pEmailAdress As String, pEnvleopeId As Integer) As Date
+ Private Function GetSignedDate(pEmailAddress As String, pEnvelopeId As Integer) As Date
Try
- Return Database.GetScalarValue($"SELECT ACTION_DATE FROM [DD_ECM].[dbo].[TBSIG_ENVELOPE_HISTORY] WHERE ENVELOPE_ID = {pEnvleopeId}
- AND USER_REFERENCE = '{pEmailAdress}' AND [STATUS] = 2002")
+ Dim oStatusInt As Integer = EnvelopeStatus.DocumentSigned
+ Return Database.GetScalarValue($"SELECT ACTION_DATE FROM [DD_ECM].[dbo].[TBSIG_ENVELOPE_HISTORY] WHERE ENVELOPE_ID = {pEnvelopeId}
+ And USER_REFERENCE = '{pEmailAddress}' AND [STATUS] = {oStatusInt}")
Catch ex As Exception
Logger.Error(ex)
@@ -272,4 +274,17 @@ Public Class ReceiverModel
End Try
End Function
+ Public Function AccessCodeAlreadyRequested(pEmailAddress As String, pEnvelopeId As Integer) As Boolean
+ Try
+ Dim oStatusInt As Integer = EnvelopeStatus.AccessCodeRequested
+ Dim oResult As Integer = Database.GetScalarValue($"SELECT COUNT(*) FROM [DD_ECM].[dbo].[TBSIG_ENVELOPE_HISTORY]
+ WHERE ENVELOPE_ID = {pEnvelopeId} And USER_REFERENCE = '{pEmailAddress}' AND [STATUS] = {oStatusInt}")
+
+ Return oResult > 0
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+ End Try
+ End Function
+
End Class
diff --git a/EnvelopeGenerator.Common/Services/ActionService.vb b/EnvelopeGenerator.Common/Services/ActionService.vb
index 2d1fa7fa..e759a7f9 100644
--- a/EnvelopeGenerator.Common/Services/ActionService.vb
+++ b/EnvelopeGenerator.Common/Services/ActionService.vb
@@ -60,6 +60,36 @@ Public Class ActionService
Return True
End Function
+ Public Function RequestAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
+ Dim oUserReference = pReceiver.Email
+
+ If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.AccessCodeRequested, oUserReference) = False Then
+ Return False
+ End If
+
+ Return True
+ End Function
+
+ Public Function EnterCorrectAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
+ Dim oUserReference = pReceiver.Email
+
+ If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.AccessCodeCorrect, oUserReference) = False Then
+ Return False
+ End If
+
+ Return True
+ End Function
+
+ Public Function EnterIncorrectAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
+ Dim oUserReference = pReceiver.Email
+
+ If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.AccessCodeIncorrect, oUserReference) = False Then
+ Return False
+ End If
+
+ Return True
+ End Function
+
Public Function SignEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Dim oUserReference = pReceiver.Email
diff --git a/EnvelopeGenerator.Common/Services/EmailService.vb b/EnvelopeGenerator.Common/Services/EmailService.vb
index da531942..c23ea3cc 100644
--- a/EnvelopeGenerator.Common/Services/EmailService.vb
+++ b/EnvelopeGenerator.Common/Services/EmailService.vb
@@ -5,8 +5,6 @@ Imports DigitalData.Modules.Logging
Public Class EmailService
Inherits BaseService
- Private ReadOnly State As State
-
Private ReadOnly EnvelopeModel As EnvelopeModel
Private ReadOnly ReceiverModel As ReceiverModel
Private ReadOnly EmailModel As EmailModel
@@ -54,6 +52,23 @@ Public Class EmailService
Return True
End Function
+ Public Function SendDocumentAccessCodeReceivedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
+
+ Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageAccessCodeSent) With
+ {
+ .SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature)
+ }
+
+ EmailTemplate.FillDocumentAccessCodeReceivedEmailBody(oEmailData)
+
+ If EmailModel.Insert(oEmailData) = False Then
+ Logger.Error("EMail data could not be inserted.")
+ Return False
+ End If
+
+ Return True
+ End Function
+
Public Function SendSignedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Dim oEmailData = New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageConfirmationSent) With
{
diff --git a/EnvelopeGenerator.Common/Templates/document_access_code_de.html b/EnvelopeGenerator.Common/Templates/document_access_code_de.html
new file mode 100644
index 00000000..e5e4abf4
--- /dev/null
+++ b/EnvelopeGenerator.Common/Templates/document_access_code_de.html
@@ -0,0 +1,450 @@
+
+