Imports DigitalData.Modules.Base Imports DigitalData.Modules.Logging Public Class TemplateService Inherits BaseService Private _replaceDictionary As Dictionary(Of String, String) Private ReadOnly DbConfig As DbConfig Private ReadOnly LogConfig As LogConfig Private ReadOnly Logger As Logger Private ReadOnly EmailHtmlTemplateModel As EmailTemplateModel Public Sub New(pState As State) MyBase.New(pState) DbConfig = pState.DbConfig LogConfig = pState.LogConfig Logger = LogConfig.GetLogger() EmailHtmlTemplateModel = New EmailTemplateModel(pState) 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) InitDictionary(pEmailData) Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentReceived) pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) End Sub Public Sub FillEnvelopeDeletedEmailBody(pEmailData As EmailData) InitDictionary(pEmailData) Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentDeleted) pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) End Sub Public Sub FillDocumentSignedEmailBody(pEmailData As EmailData) InitDictionary(pEmailData) Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentSigned) pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) End Sub Public Sub FillDocumentCompletedEmailBody(pEmailData As EmailData) InitDictionary(pEmailData) Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentCompleted) pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) End Sub Public Sub FillDocumentAccessCodeReceivedEmailBody(pEmailData As EmailData) InitDictionary(pEmailData) Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentAccessCodeReceived) pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) End Sub Private Function FillTemplate(pTemplate As String) As String Dim oText As String = pTemplate For Each dictItem As KeyValuePair(Of String, String) In _replaceDictionary If oText.Contains(dictItem.Key) Then oText = oText.Replace(dictItem.Key, dictItem.Value) End If Next Return oText End Function End Class