From 3ee7c180f6acfdd905eeab7eb43680c123a30fcd Mon Sep 17 00:00:00 2001 From: MPitz Date: Mon, 25 Sep 2023 16:37:55 +0200 Subject: [PATCH] 2023-09-25 --- .../{ => Entities}/DbConfig.vb | 1 + .../Entities/EmailTemplate.vb | 2 +- .../EnvelopeGenerator.Common.vbproj | 3 +- .../Models/ConfigModel.vb | 40 ++++++++++++++++++ .../Controllers/EnvelopeEditorController.vb | 13 +++--- EnvelopeGenerator.Form/frmEnvelopeEditor.vb | 6 ++- EnvelopeGenerator.Form/frmEnvelopeMainData.vb | 8 ++++ EnvelopeGenerator.Form/frmFieldEditor.vb | 2 + EnvelopeGenerator.Form/frmMain.vb | 41 ++++++------------- 9 files changed, 77 insertions(+), 39 deletions(-) rename EnvelopeGenerator.Common/{ => Entities}/DbConfig.vb (73%) create mode 100644 EnvelopeGenerator.Common/Models/ConfigModel.vb diff --git a/EnvelopeGenerator.Common/DbConfig.vb b/EnvelopeGenerator.Common/Entities/DbConfig.vb similarity index 73% rename from EnvelopeGenerator.Common/DbConfig.vb rename to EnvelopeGenerator.Common/Entities/DbConfig.vb index 69515bf0..b488f7bd 100644 --- a/EnvelopeGenerator.Common/DbConfig.vb +++ b/EnvelopeGenerator.Common/Entities/DbConfig.vb @@ -1,4 +1,5 @@ Public Class DbConfig + Public Property ExternalProgramName As String = "Sign Flow" Public Property DocumentPath As String = "" Public Property SendingProfile As Integer = 0 Public Property SignatureHost As String = "" diff --git a/EnvelopeGenerator.Common/Entities/EmailTemplate.vb b/EnvelopeGenerator.Common/Entities/EmailTemplate.vb index d12b5e15..3d6179de 100644 --- a/EnvelopeGenerator.Common/Entities/EmailTemplate.vb +++ b/EnvelopeGenerator.Common/Entities/EmailTemplate.vb @@ -36,7 +36,7 @@ } End Sub - Public Sub SetEmailBody(pEmailData As EmailData) + Public Sub FillEmailBody(pEmailData As EmailData) InitDictionary(pEmailData) diff --git a/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj b/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj index 03c06810..5cef3e07 100644 --- a/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj +++ b/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj @@ -93,7 +93,7 @@ - + @@ -107,6 +107,7 @@ + diff --git a/EnvelopeGenerator.Common/Models/ConfigModel.vb b/EnvelopeGenerator.Common/Models/ConfigModel.vb new file mode 100644 index 00000000..c5fd1f89 --- /dev/null +++ b/EnvelopeGenerator.Common/Models/ConfigModel.vb @@ -0,0 +1,40 @@ +Imports System.Data.SqlClient +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.Logging + +Public Class ConfigModel + Inherits BaseModel + + Public Sub New(pState As State) + MyBase.New(pState) + End Sub + + Public Function LoadConfiguration() As DbConfig + Try + Dim oSql As String = "SELECT TOP 1 * FROM TBSIG_CONFIG" + Dim oTable As DataTable = Database.GetDatatable(oSql) + Dim oRow = oTable.Rows.Item(0) + + Return New DbConfig() With { + .DocumentPath = oRow.ItemEx("DOCUMENT_PATH", ""), + .SendingProfile = oRow.ItemEx("SENDING_PROFILE", 0), + .SignatureHost = oRow.ItemEx("SIGNATURE_HOST", ""), + .ExternalProgramName = oRow.ItemEx("EXTERNAL_PROGRAM_NAME", "") + } + Catch ex As Exception + Return New DbConfig() + End Try + End Function + + Public Function GetUserId() As Integer + Try + Dim oUserId As Integer = Database.GetScalarValue($"SELECT GUID FROM TBDD_USER WHERE USERNAME = '{Environment.UserName}'") + Return oUserId + + Catch ex As Exception + Return 0 + End Try + End Function + + +End Class diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb index 11768ae1..03f9263d 100644 --- a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb +++ b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb @@ -48,10 +48,8 @@ Public Class EnvelopeEditorController .SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, Envelope.Uuid, receiverItem.Signature) } - ' TODO Email-Template füllen Dim oTemplate As EmailTemplate = New EmailTemplate(State) - oTemplate.SetEmailBody(oEmailData) - + oTemplate.FillEmailBody(oEmailData) If EmailModel.Insert(oEmailData) = False Then Logger.Error("EMail data could not be inserted.") @@ -62,7 +60,7 @@ Public Class EnvelopeEditorController If EnvelopeModel.Send(Envelope) Then - 'TODO: Send email + 'TODO: Send email to History Return True Else Return False @@ -94,15 +92,16 @@ Public Class EnvelopeEditorController .UserId = State.UserId, .User = UserModel.SelectUser() } + If EnvelopeModel.Insert(oEnvelope) Then Dim newHistoryEntry As New EnvelopeHistoryEntry With { .EnvelopeId = oEnvelope.Id, .Status = HistoryStatus.Created, - .ActionTitle = "Envelope erzeugt", - .ActionDescription = "Envelope wurde erzeugt" + .ActionTitle = "Envelope erstellt", + .ActionDescription = "Envelope wurde neu erstellt", + .UserEmailAddress = oEnvelope.User.Email } - 'TODO .UserEmailAddress = oEnvelope.User.Email ' TODO - fehlt noch Return oEnvelope Else diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb index 30e7d154..809a70aa 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb +++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb @@ -34,12 +34,13 @@ Partial Public Class frmEnvelopeEditor Private Sub frmEditor_Load(sender As Object, e As EventArgs) Handles Me.Load Logger = State.LogConfig.GetLogger() + Me.Text = State.DbConfig.ExternalProgramName + " Umschlag-Editor" If Envelope Is Nothing Then Controller = New EnvelopeEditorController(State) ' Get additional data - Dim oDataForm As New frmEnvelopeMainData() With {.State = State} + Dim oDataForm As New frmEnvelopeMainData() With {.State = State, .NewEnvelopeMode = True} Dim oResult As DialogResult = oDataForm.ShowDialog() If oResult = DialogResult.OK Then Controller.Envelope.Title = oDataForm.EnvelopeTitle @@ -222,7 +223,8 @@ Partial Public Class frmEnvelopeEditor { .State = State, .EnvelopeTitle = Controller.Envelope.Title, - .EnvelopeContractType = Controller.Envelope.ContractType + .EnvelopeContractType = Controller.Envelope.ContractType, + .NewEnvelopeMode = False } If oForm.ShowDialog() = DialogResult.OK Then Controller.Envelope.Title = oForm.EnvelopeTitle diff --git a/EnvelopeGenerator.Form/frmEnvelopeMainData.vb b/EnvelopeGenerator.Form/frmEnvelopeMainData.vb index 39221392..4620f14e 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeMainData.vb +++ b/EnvelopeGenerator.Form/frmEnvelopeMainData.vb @@ -5,6 +5,7 @@ Public Class frmEnvelopeMainData Public Property EnvelopeTitle As String Public Property EnvelopeContractType As ContractType = ContractType.Contract + Public Property NewEnvelopeMode As Boolean = True Public Property State As State @@ -13,6 +14,13 @@ Public Class frmEnvelopeMainData End Sub Private Sub frmEnvelopeMainData_Load(sender As Object, e As EventArgs) Handles MyBase.Load + If NewEnvelopeMode = True Then + Me.Text = "Neuer Umschlag..." + Else + Me.Text = "Umschlag bearbeiten..." + cmbContractType.ReadOnly = True + End If + Dim contractTypeList = [Enum].GetValues(GetType(ContractType)) _ .Cast(Of ContractType)().ToList() cmbContractType.Properties.Items.AddRange(contractTypeList) diff --git a/EnvelopeGenerator.Form/frmFieldEditor.vb b/EnvelopeGenerator.Form/frmFieldEditor.vb index 44bd752d..eaa47ecb 100644 --- a/EnvelopeGenerator.Form/frmFieldEditor.vb +++ b/EnvelopeGenerator.Form/frmFieldEditor.vb @@ -27,6 +27,8 @@ Partial Public Class frmFieldEditor LogConfig = New LogConfig(LogConfig.PathType.CustomPath, Application.StartupPath, CompanyName:="Digital Data", ProductName:="EnvelopeGenerator") Logger = LogConfig.GetLogger() + Me.Text = State.DbConfig.ExternalProgramName + " Signatur-Editor" + If Document Is Nothing Then Throw New ArgumentNullException("Document") End If diff --git a/EnvelopeGenerator.Form/frmMain.vb b/EnvelopeGenerator.Form/frmMain.vb index 427d6888..53484039 100644 --- a/EnvelopeGenerator.Form/frmMain.vb +++ b/EnvelopeGenerator.Form/frmMain.vb @@ -1,5 +1,4 @@ -Imports System.IO -Imports DevExpress.XtraSplashScreen +Imports DevExpress.XtraSplashScreen Imports DigitalData.GUIs.Common Imports DigitalData.Modules.Base Imports DigitalData.Modules.Config @@ -13,7 +12,6 @@ Public Class frmMain Private Logger As Logger Private Database As MSSQLServer Private ConfigManager As ConfigManager(Of Config) - Private DbConfig As DbConfig Private TempFiles As TempFiles Private GridBuilder As GridBuilder @@ -33,22 +31,25 @@ Public Class frmMain ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath) Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString) Database = New MSSQLServer(LogConfig, oConnectionString) - Dim oUserId = 0 - - If Database.DBInitialized = True Then - DbConfig = GetDatabaseConfig() - - oUserId = Database.GetScalarValue($"SELECT GUID FROM TBDD_USER WHERE USERNAME = '{Environment.UserName}'") - End If State = New State With { - .UserId = CInt(oUserId), + .UserId = 0, .Config = ConfigManager.Config, - .DbConfig = DbConfig, + .DbConfig = New DbConfig(), .LogConfig = LogConfig, .Database = Database } + If Database.DBInitialized = True Then + Dim ConfigModel = New ConfigModel(State) + State.DbConfig = ConfigModel.LoadConfiguration() + State.UserId = ConfigModel.GetUserId() + End If + + If Not String.IsNullOrEmpty(State.DbConfig.ExternalProgramName) Then + Me.Text = State.DbConfig.ExternalProgramName + End If + Controller = New EnvelopeListController(State) GridBuilder = New GridBuilder(ViewEnvelopes) @@ -64,22 +65,6 @@ Public Class frmMain End Sub - Private Function GetDatabaseConfig() As DbConfig - Try - Dim oSql As String = "SELECT TOP 1 * FROM TBSIG_CONFIG" - Dim oTable As DataTable = Database.GetDatatable(oSql) - Dim oRow = oTable.Rows.Item(0) - - Return New DbConfig() With { - .DocumentPath = oRow.ItemEx("DOCUMENT_PATH", ""), - .SendingProfile = oRow.ItemEx("SENDING_PROFILE", 0), - .SignatureHost = oRow.ItemEx("SIGNATURE_HOST", "") - } - Catch ex As Exception - Return New DbConfig() - End Try - End Function - Private Sub btnCreateEnvelope_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnCreateEnvelope.ItemClick Dim oHandle = SplashScreenManager.ShowOverlayForm(Me) Try