Imports DigitalData.Modules.Base Imports DigitalData.Modules.Logging 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 _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) Private ReadOnly DbConfig As DbConfig Private ReadOnly LogConfig As LogConfig Private ReadOnly Logger As Logger Public Sub New(pState As State) InitBodyTemplates() InitSubjectTemplates() DbConfig = pState.DbConfig LogConfig = pState.LogConfig Logger = LogConfig.GetLogger() 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]'" _DocumentAccessCodeReceivedSubjectTemplate = "Zugriffscode für Dokument erhalten: '[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() '_DocumentAccessCodeReceivedBodyTemplate = Common.My.Resources. _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]" } _DocumentAccessCodeReceivedBodyTemplate = New List(Of String) From { "Guten Tag [NAME_RECEIVER]", "", "[NAME_SENDER] hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet. ", "Verwenden Sie den folgenden Zugriffscode, um das Dokument einzusehen:", "", "[DOCUMENT_ACCESS_CODE]", "", "Vielen Dank für die Nutzung von", "[NAME_PORTAL]" } End Sub Private Sub InitDictionary(pEmailData As EmailData) Logger.Debug("Initializing dictionary..") _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}, {"[DOCUMENT_ACCESS_CODE]", pEmailData.ReceiverAccessCode} } 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 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 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 Private 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