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: [LINK_TO_DOCUMENT_TEXT]", "", "[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 + "
" Next pEmailData.EmailBody = oBody End Sub End Class