91 lines
3.4 KiB
VB.net
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
|