From 12556e41e4ded59e09cc20f67ab220a0fae8c618 Mon Sep 17 00:00:00 2001 From: MPitz Date: Wed, 20 Sep 2023 09:01:26 +0200 Subject: [PATCH] 2023-09-20 MP --- EnvelopeGenerator.Common/DbConfig.vb | 1 + .../Entities/EmailData.vb | 7 ++++ .../EnvelopeGenerator.Common.vbproj | 2 ++ EnvelopeGenerator.Common/Models/EmailModel.vb | 35 +++++++++++++++++++ .../Controllers/BaseController.vb | 2 ++ .../Controllers/EnvelopeEditorController.vb | 32 +++++++++++++++++ EnvelopeGenerator.Form/frmEnvelopeEditor.vb | 6 ++++ EnvelopeGenerator.Form/frmMain.vb | 3 +- 8 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 EnvelopeGenerator.Common/Entities/EmailData.vb create mode 100644 EnvelopeGenerator.Common/Models/EmailModel.vb diff --git a/EnvelopeGenerator.Common/DbConfig.vb b/EnvelopeGenerator.Common/DbConfig.vb index 582eb8aa..013eb8a5 100644 --- a/EnvelopeGenerator.Common/DbConfig.vb +++ b/EnvelopeGenerator.Common/DbConfig.vb @@ -1,3 +1,4 @@ Public Class DbConfig Public Property DocumentPath As String = "" + Public Property SendingProfile As Integer = 0 End Class diff --git a/EnvelopeGenerator.Common/Entities/EmailData.vb b/EnvelopeGenerator.Common/Entities/EmailData.vb new file mode 100644 index 00000000..dc01e725 --- /dev/null +++ b/EnvelopeGenerator.Common/Entities/EmailData.vb @@ -0,0 +1,7 @@ +Public Class EmailData + Public Property EmailAdress As String + Public Property EmailSubject As String + Public Property EmailBody As String + + Public Property ReferenceID As Integer +End Class diff --git a/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj b/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj index a9ab1d95..8d44b64f 100644 --- a/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj +++ b/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj @@ -95,6 +95,7 @@ + @@ -106,6 +107,7 @@ + diff --git a/EnvelopeGenerator.Common/Models/EmailModel.vb b/EnvelopeGenerator.Common/Models/EmailModel.vb new file mode 100644 index 00000000..15481bae --- /dev/null +++ b/EnvelopeGenerator.Common/Models/EmailModel.vb @@ -0,0 +1,35 @@ +Imports System.Data.SqlClient +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.Logging + +Public Class EmailModel + Inherits BaseModel + + Public Sub New(pState As State) + MyBase.New(pState) + End Sub + + Public Function Insert(pEmail As EmailData) As Boolean + Try + Dim oSql = "INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID) " + oSql += " VALUES (@EMAIL_ADRESS, @EMAIL_SUBJ, @EMAIL_BODY, @ADDED_WHO, @SENDING_PROFILE, @REFERENCE_ID)" + Dim oCommand As New SqlCommand(oSql) + oCommand.Parameters.Add("EMAIL_ADRESS", SqlDbType.NVarChar).Value = pEmail.EmailAdress + oCommand.Parameters.Add("EMAIL_SUBJ", SqlDbType.NVarChar).Value = pEmail.EmailSubject + oCommand.Parameters.Add("EMAIL_BODY", SqlDbType.NVarChar).Value = pEmail.EmailBody + oCommand.Parameters.Add("ADDED_WHO", SqlDbType.NVarChar).Value = "Envelop Generator" + oCommand.Parameters.Add("SENDING_PROFILE", SqlDbType.Int).Value = State.DbConfig.SendingProfile + oCommand.Parameters.Add("REFERENCE_ID", SqlDbType.Int).Value = pEmail.ReferenceID + + If Database.ExecuteNonQuery(oCommand) Then + Return True + Else + Return False + End If + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function +End Class diff --git a/EnvelopeGenerator.Form/Controllers/BaseController.vb b/EnvelopeGenerator.Form/Controllers/BaseController.vb index 87c9077d..8f524073 100644 --- a/EnvelopeGenerator.Form/Controllers/BaseController.vb +++ b/EnvelopeGenerator.Form/Controllers/BaseController.vb @@ -12,6 +12,7 @@ Public MustInherit Class BaseController Public ElementModel As ElementModel Public HistoryModel As HistoryModel Public UserModel As UserModel + Public EmailModel As EmailModel Public ReadOnly Property Database As MSSQLServer Public ReadOnly Property State As State @@ -30,6 +31,7 @@ Public MustInherit Class BaseController ElementModel = New ElementModel(pState) HistoryModel = New HistoryModel(pState) UserModel = New UserModel(pState) + EmailModel = New EmailModel(pState) End Sub Public Function DeleteEnvelope(pEnvelope As Envelope) As Boolean diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb index 7f3851ae..bc51c23c 100644 --- a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb +++ b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb @@ -31,6 +31,27 @@ Public Class EnvelopeEditorController #Region "Public" Public Function SendEnvelope() As Boolean + Dim oResult As Boolean = True + + For Each receiverItem As EnvelopeReceiver In Envelope.Receivers + + ' TODO Email-Template füllen + Dim oEmailBody As String = String.Empty + + Dim oEmailData As EmailData = New EmailData With + { + .EmailAdress = receiverItem.Email, + .EmailSubject = Envelope.Subject, + .EmailBody = oEmailBody, + .ReferenceID = Envelope.Id + } + + If EmailModel.Insert(oEmailData) = False Then + Logger.Error("EMail data could not be inserted.") + oResult = False + End If + + Next If EnvelopeModel.Send(Envelope) Then @@ -141,6 +162,17 @@ Public Class EnvelopeEditorController End Try End Function + Public Function CreateThumbnail(pDocumentPath As String) As Bitmap + Try + Dim oThumbNail As Bitmap = Thumbnail.GetThumbnailFromPDFFile(pDocumentPath) + + Return oThumbNail + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function + Public Overloads Function DeleteDocument(pDocument As EnvelopeDocument) As Boolean Dim oConnection As SqlConnection = Database.GetConnection Dim oTransaction As SqlTransaction = oConnection.BeginTransaction diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb index 5a60cdb3..ad1be2ef 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb +++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb @@ -54,6 +54,12 @@ Partial Public Class frmEnvelopeEditor txtMessage.EditValue = Controller.Envelope.Message txtSubject.EditValue = Controller.Envelope.Subject + For Each docItem As EnvelopeDocument In Documents + If docItem.Thumbnail Is Nothing Then + docItem.Thumbnail = Controller.CreateThumbnail(docItem.Filepath) + End If + Next + If Envelope.Status = Constants.EnvelopeStatus.Sent Then SetFormReadonly() End If diff --git a/EnvelopeGenerator.Form/frmMain.vb b/EnvelopeGenerator.Form/frmMain.vb index 40fcd687..a0639faf 100644 --- a/EnvelopeGenerator.Form/frmMain.vb +++ b/EnvelopeGenerator.Form/frmMain.vb @@ -71,7 +71,8 @@ Public Class frmMain Dim oRow = oTable.Rows.Item(0) Return New DbConfig() With { - .DocumentPath = oRow.ItemEx("DOCUMENT_PATH", "") + .DocumentPath = oRow.ItemEx("DOCUMENT_PATH", ""), + .SendingProfile = oRow.ItemEx("SENDING_PROFILE", 0) } Catch ex As Exception Return New DbConfig()