Jonathan Jenne f506587d2c 06-12-23
2023-12-06 10:59:11 +01:00

141 lines
5.2 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 = "Dokument zurückgezogen: '<DOCUMENT_TITLE>'"
_DocumentCompletedSubjectTemplate = "Dokument 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>"
}
_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)
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