91 lines
3.4 KiB
VB.net

Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Domain.Constants
Public Class TemplateService
Inherits BaseService
Private _replaceDictionary As Dictionary(Of String, String)
Private ReadOnly DbConfig As DbConfig
Private ReadOnly EmailHtmlTemplateModel As EmailTemplateModel
Public Sub New(pState As State)
MyBase.New(pState)
DbConfig = pState.DbConfig
EmailHtmlTemplateModel = New EmailTemplateModel(pState)
End Sub
Private Sub InitDictionary(pEmailData As EmailData, Optional pReason As String = "")
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},
{"[REASON]", pReason}
}
End Sub
Public Sub FillDocumentReceivedEmailBody(pEmailData As EmailData)
InitDictionary(pEmailData)
Dim oTemplate = EmailHtmlTemplateModel.GetById(EmailTemplateType.DocumentReceived)
pEmailData.EmailBody = FillTemplate(oTemplate.Body)
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
End Sub
Public Sub FillEnvelopeDeletedEmailBody(pEmailData As EmailData, pReason As String)
InitDictionary(pEmailData, pReason)
Dim oTemplate = EmailHtmlTemplateModel.GetById(EmailTemplateType.DocumentDeleted)
pEmailData.EmailBody = FillTemplate(oTemplate.Body, pReason)
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
End Sub
Public Sub FillDocumentSignedEmailBody(pEmailData As EmailData)
InitDictionary(pEmailData)
Dim oTemplate = EmailHtmlTemplateModel.GetById(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(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(EmailTemplateType.DocumentAccessCodeReceived)
pEmailData.EmailBody = FillTemplate(oTemplate.Body)
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
End Sub
Private Function FillTemplate(pTemplate As String, Optional pReason 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