2023-12-18 16:33:31 +01:00

144 lines
5.3 KiB
VB.net

Imports DigitalData.Modules.Base
Public Class EmailTemplate
Private _DocumentReceivedBodyTemplate As List(Of String)
Private _DocumentSignedBodyTemplate As List(Of String)
Private _DocumentCompletedBodyTemplate As List(Of String)
Private _DocumentDeletedBodyTemplate As List(Of String)
Private _DocumentReceivedSubjectTemplate As String
Private _DocumentSignedSubjectTemplate As String
Private _DocumentDeletedSubjectTemplate As String
Private _DocumentCompletedSubjectTemplate As String
Private _replaceDictionary As Dictionary(Of String, String)
Private DbConfig As DbConfig
Public Sub New(pState As State)
InitBodyTemplates()
InitSubjectTemplates()
DbConfig = pState.DbConfig
End Sub
Private Sub InitSubjectTemplates()
_DocumentReceivedSubjectTemplate = "Dokument erhalten: '[DOCUMENT_TITLE]'"
_DocumentSignedSubjectTemplate = "Dokument unterschrieben: '[DOCUMENT_TITLE]'"
_DocumentDeletedSubjectTemplate = "Vorgang zurückgezogen: '[DOCUMENT_TITLE]'"
_DocumentCompletedSubjectTemplate = "Vorgang abgeschlossen: '[DOCUMENT_TITLE]'"
End Sub
Private Sub InitBodyTemplates()
_DocumentReceivedBodyTemplate = New List(Of String) From {
"Guten Tag [NAME_RECEIVER],",
"",
"[NAME_SENDER] hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet.",
"",
"Über den folgenden Link können Sie das Dokument einsehen: <a href=""[LINK_TO_DOCUMENT]"">[LINK_TO_DOCUMENT_TEXT]</a>",
"",
"[MESSAGE]",
"",
"Mit freundlichen Grüßen",
"[NAME_PORTAL]"
}
'_DocumentReceivedBodyTemplate = Common.My.Resources.email_de.Split(vbNewLine).ToList()
_DocumentSignedBodyTemplate = New List(Of String) From {
"Guten Tag [NAME_RECEIVER]",
"",
"hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang [DOCUMENT_TITLE].",
"",
"Mit freundlichen Grüßen",
"[NAME_PORTAL]"
}
_DocumentDeletedBodyTemplate = New List(Of String) From {
"Guten Tag [NAME_RECEIVER]",
"",
"Der User [NAME_SENDER] hat den Umschlag [DOCUMENT_TITLE] gelöscht.",
"",
"Mit freundlichen Grüßen",
"[NAME_PORTAL]"
}
_DocumentCompletedBodyTemplate = New List(Of String) From {
"Guten Tag [NAME_RECEIVER]",
"",
"Der Signaturvorgang [DOCUMENT_TITLE] wurde erfolgreich abgeschlossen.",
"Sie erhalten das Dokument mit einem detaillierten Ergebnisbericht als Anhang zu dieser Email.",
"",
"Vielen Dank für die Nutzung von",
"[NAME_PORTAL]"
}
End Sub
Private Sub InitDictionary(pEmailData As EmailData)
_replaceDictionary = New Dictionary(Of String, String) From {
{"[NAME_RECEIVER]", pEmailData.ReceiverName},
{"[NAME_SENDER]", pEmailData.SenderName},
{"[NAME_PORTAL]", DbConfig.ExternalProgramName},
{"[SIGNATURE_TYPE]", "signieren"},
{"[LINK_TO_DOCUMENT]", pEmailData.SignatureLink},
{"[LINK_TO_DOCUMENT_TEXT]", $"{pEmailData.SignatureLink.Truncate(40)}.."},
{"[DOCUMENT_TITLE]", pEmailData.EnvelopeTitle},
{"[MESSAGE]", pEmailData.Message}
}
End Sub
Public Sub FillDocumentReceivedEmailBody(pEmailData As EmailData)
FillEmailBody(pEmailData, _DocumentReceivedBodyTemplate)
FillEmailSubject(pEmailData, _DocumentReceivedSubjectTemplate)
End Sub
Public Sub FillEnvelopeDeletedEmailBody(pEmailData As EmailData)
FillEmailBody(pEmailData, _DocumentDeletedBodyTemplate)
FillEmailSubject(pEmailData, _DocumentDeletedSubjectTemplate)
End Sub
Public Sub FillDocumentSignedEmailBody(pEmailData As EmailData)
FillEmailBody(pEmailData, _DocumentSignedBodyTemplate)
FillEmailSubject(pEmailData, _DocumentSignedSubjectTemplate)
End Sub
Public Sub FillDocumentCompletedEmailBody(pEmailData As EmailData)
FillEmailBody(pEmailData, _DocumentCompletedBodyTemplate)
FillEmailSubject(pEmailData, _DocumentCompletedSubjectTemplate)
End Sub
Public Sub FillEmailSubject(pEmailData As EmailData, pTemplate As String)
InitDictionary(pEmailData)
Dim oSubject As String = pTemplate
For Each dictItem As KeyValuePair(Of String, String) In _replaceDictionary
If oSubject.Contains(dictItem.Key) Then
oSubject = oSubject.Replace(dictItem.Key, dictItem.Value)
End If
Next
pEmailData.EmailSubject = oSubject
End Sub
Public Sub FillEmailBody(pEmailData As EmailData, pTemplate As List(Of String))
InitDictionary(pEmailData)
Dim oBody As String = ""
For Each lineItem As String In pTemplate
Dim oLineValue As String = lineItem
For Each dictItem As KeyValuePair(Of String, String) In _replaceDictionary
If oLineValue.Contains(dictItem.Key) Then
oLineValue = oLineValue.Replace(dictItem.Key, dictItem.Value)
End If
Next
oBody += oLineValue + "<br/>"
Next
pEmailData.EmailBody = oBody
End Sub
End Class