From 462bf4a61f2ee79dca72b6ae1fc13827feafeaf9 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 7 Aug 2023 11:23:52 +0200 Subject: [PATCH] 2023-08-07 --- .../Config.vb | 0 .../Constants.vb | 1 + .../DbConfig.vb | 0 .../Entities/ElementMetadata.vb | 0 .../Entities/Envelope.vb | 0 .../Entities/EnvelopeDocument.vb | 0 .../Entities/EnvelopeDocumentElement.vb | 0 .../Entities/EnvelopeHistoryEntry.vb | 10 ++ .../Entities/EnvelopeReceiver.vb | 0 .../Entities/State.vb | 0 .../EnvelopeGenerator.Common.vbproj | 149 ++++++++++++++++ .../Models/BaseModel.vb | 1 + .../Models/DocumentModel.vb | 3 +- .../Models/ElementModel.vb | 3 +- .../Models/EnvelopeModel.vb | 1 + .../Models/HistoryModel.vb | 43 +++++ .../Models/ReceiverModel.vb | 4 +- .../My Project/Application.Designer.vb | 13 ++ .../My Project/Application.myapp | 10 ++ .../My Project/AssemblyInfo.vb | 35 ++++ .../My Project/Resources.Designer.vb | 63 +++++++ .../My Project/Resources.resx | 117 +++++++++++++ .../My Project/Settings.Designer.vb | 73 ++++++++ .../My Project/Settings.settings | 7 + .../Strings/Envelope.Designer.vb | 2 +- .../Strings/Envelope.resx | 0 EnvelopeGenerator.Common_ALT/Config.vb | 6 + EnvelopeGenerator.Common_ALT/Constants.vb | 17 ++ EnvelopeGenerator.Common_ALT/DbConfig.vb | 3 + .../Entities/ElementMetadata.vb | 4 + .../Entities/Envelope.vb | 48 ++++++ .../Entities/EnvelopeDocument.vb | 23 +++ .../Entities/EnvelopeDocumentElement.vb | 15 ++ .../Entities/EnvelopeHistoryEntry.vb | 12 ++ .../Entities/EnvelopeReceiver.vb | 26 +++ .../Entities/State.vb | 10 ++ .../EnvelopeGenerator.Common.old.vbproj | 44 +++++ .../Models/BaseModel.vb | 15 ++ .../Models/DocumentModel.vb | 33 ++++ .../Models/ElementModel.vb | 56 ++++++ .../Models/EnvelopeModel.vb | 102 +++++++++++ .../Models/HistoryModel.vb | 43 +++++ .../Models/ReceiverModel.vb | 159 ++++++++++++++++++ .../Strings/Envelope.Designer.vb | 112 ++++++++++++ .../Strings/Envelope.resx | 135 +++++++++++++++ .../Controllers/EnvelopeEditorController.vb | 7 +- .../Controllers/EnvelopeListController.vb | 1 + .../Controllers/FieldEditorController.vb | 3 +- .../EnvelopeGenerator.Form.vbproj | 30 +--- EnvelopeGenerator.Form/frmEnvelopeEditor.vb | 1 + EnvelopeGenerator.Form/frmFieldEditor.vb | 1 + EnvelopeGenerator.Form/frmMain.vb | 1 + EnvelopeGenerator.sln | 6 + 53 files changed, 1415 insertions(+), 33 deletions(-) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Config.vb (100%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Constants.vb (93%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/DbConfig.vb (100%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Entities/ElementMetadata.vb (100%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Entities/Envelope.vb (100%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Entities/EnvelopeDocument.vb (100%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Entities/EnvelopeDocumentElement.vb (100%) create mode 100644 EnvelopeGenerator.Common/Entities/EnvelopeHistoryEntry.vb rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Entities/EnvelopeReceiver.vb (100%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Entities/State.vb (100%) create mode 100644 EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Models/BaseModel.vb (94%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Models/DocumentModel.vb (94%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Models/ElementModel.vb (97%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Models/EnvelopeModel.vb (99%) create mode 100644 EnvelopeGenerator.Common/Models/HistoryModel.vb rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Models/ReceiverModel.vb (98%) create mode 100644 EnvelopeGenerator.Common/My Project/Application.Designer.vb create mode 100644 EnvelopeGenerator.Common/My Project/Application.myapp create mode 100644 EnvelopeGenerator.Common/My Project/AssemblyInfo.vb create mode 100644 EnvelopeGenerator.Common/My Project/Resources.Designer.vb create mode 100644 EnvelopeGenerator.Common/My Project/Resources.resx create mode 100644 EnvelopeGenerator.Common/My Project/Settings.Designer.vb create mode 100644 EnvelopeGenerator.Common/My Project/Settings.settings rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Strings/Envelope.Designer.vb (98%) rename {EnvelopeGenerator.Form => EnvelopeGenerator.Common}/Strings/Envelope.resx (100%) create mode 100644 EnvelopeGenerator.Common_ALT/Config.vb create mode 100644 EnvelopeGenerator.Common_ALT/Constants.vb create mode 100644 EnvelopeGenerator.Common_ALT/DbConfig.vb create mode 100644 EnvelopeGenerator.Common_ALT/Entities/ElementMetadata.vb create mode 100644 EnvelopeGenerator.Common_ALT/Entities/Envelope.vb create mode 100644 EnvelopeGenerator.Common_ALT/Entities/EnvelopeDocument.vb create mode 100644 EnvelopeGenerator.Common_ALT/Entities/EnvelopeDocumentElement.vb create mode 100644 EnvelopeGenerator.Common_ALT/Entities/EnvelopeHistoryEntry.vb create mode 100644 EnvelopeGenerator.Common_ALT/Entities/EnvelopeReceiver.vb create mode 100644 EnvelopeGenerator.Common_ALT/Entities/State.vb create mode 100644 EnvelopeGenerator.Common_ALT/EnvelopeGenerator.Common.old.vbproj create mode 100644 EnvelopeGenerator.Common_ALT/Models/BaseModel.vb create mode 100644 EnvelopeGenerator.Common_ALT/Models/DocumentModel.vb create mode 100644 EnvelopeGenerator.Common_ALT/Models/ElementModel.vb create mode 100644 EnvelopeGenerator.Common_ALT/Models/EnvelopeModel.vb create mode 100644 EnvelopeGenerator.Common_ALT/Models/HistoryModel.vb create mode 100644 EnvelopeGenerator.Common_ALT/Models/ReceiverModel.vb create mode 100644 EnvelopeGenerator.Common_ALT/Strings/Envelope.Designer.vb create mode 100644 EnvelopeGenerator.Common_ALT/Strings/Envelope.resx diff --git a/EnvelopeGenerator.Form/Config.vb b/EnvelopeGenerator.Common/Config.vb similarity index 100% rename from EnvelopeGenerator.Form/Config.vb rename to EnvelopeGenerator.Common/Config.vb diff --git a/EnvelopeGenerator.Form/Constants.vb b/EnvelopeGenerator.Common/Constants.vb similarity index 93% rename from EnvelopeGenerator.Form/Constants.vb rename to EnvelopeGenerator.Common/Constants.vb index c25d31cc..7d072efe 100644 --- a/EnvelopeGenerator.Form/Constants.vb +++ b/EnvelopeGenerator.Common/Constants.vb @@ -3,6 +3,7 @@ Public Enum EnvelopeStatus Created = 0 Saved = 1 + Sent = 2 End Enum Public Enum ElementType diff --git a/EnvelopeGenerator.Form/DbConfig.vb b/EnvelopeGenerator.Common/DbConfig.vb similarity index 100% rename from EnvelopeGenerator.Form/DbConfig.vb rename to EnvelopeGenerator.Common/DbConfig.vb diff --git a/EnvelopeGenerator.Form/Entities/ElementMetadata.vb b/EnvelopeGenerator.Common/Entities/ElementMetadata.vb similarity index 100% rename from EnvelopeGenerator.Form/Entities/ElementMetadata.vb rename to EnvelopeGenerator.Common/Entities/ElementMetadata.vb diff --git a/EnvelopeGenerator.Form/Entities/Envelope.vb b/EnvelopeGenerator.Common/Entities/Envelope.vb similarity index 100% rename from EnvelopeGenerator.Form/Entities/Envelope.vb rename to EnvelopeGenerator.Common/Entities/Envelope.vb diff --git a/EnvelopeGenerator.Form/Entities/EnvelopeDocument.vb b/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb similarity index 100% rename from EnvelopeGenerator.Form/Entities/EnvelopeDocument.vb rename to EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb diff --git a/EnvelopeGenerator.Form/Entities/EnvelopeDocumentElement.vb b/EnvelopeGenerator.Common/Entities/EnvelopeDocumentElement.vb similarity index 100% rename from EnvelopeGenerator.Form/Entities/EnvelopeDocumentElement.vb rename to EnvelopeGenerator.Common/Entities/EnvelopeDocumentElement.vb diff --git a/EnvelopeGenerator.Common/Entities/EnvelopeHistoryEntry.vb b/EnvelopeGenerator.Common/Entities/EnvelopeHistoryEntry.vb new file mode 100644 index 00000000..218d8356 --- /dev/null +++ b/EnvelopeGenerator.Common/Entities/EnvelopeHistoryEntry.vb @@ -0,0 +1,10 @@ +Public Class EnvelopeHistoryEntry + Public EnvelopeId As Integer + Public Status As Constants.EnvelopeStatus + Public UserEmailAddress As String + Public ActionTitle As String + Public ActionDescription As String + Public AddedWhen As Date + + +End Class diff --git a/EnvelopeGenerator.Form/Entities/EnvelopeReceiver.vb b/EnvelopeGenerator.Common/Entities/EnvelopeReceiver.vb similarity index 100% rename from EnvelopeGenerator.Form/Entities/EnvelopeReceiver.vb rename to EnvelopeGenerator.Common/Entities/EnvelopeReceiver.vb diff --git a/EnvelopeGenerator.Form/Entities/State.vb b/EnvelopeGenerator.Common/Entities/State.vb similarity index 100% rename from EnvelopeGenerator.Form/Entities/State.vb rename to EnvelopeGenerator.Common/Entities/State.vb diff --git a/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj b/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj new file mode 100644 index 00000000..b614bf8d --- /dev/null +++ b/EnvelopeGenerator.Common/EnvelopeGenerator.Common.vbproj @@ -0,0 +1,149 @@ + + + + + Debug + AnyCPU + {6EA0C51F-C2B1-4462-8198-3DE0B32B74F8} + Library + EnvelopeGenerator.Common + EnvelopeGenerator.Common + 512 + Windows + v4.6.2 + true + + + + true + full + true + true + bin\Debug\ + EnvelopeGenerator.Common.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + EnvelopeGenerator.Common.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + False + ..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll + + + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + + ..\packages\NLog.5.0.5\lib\net46\NLog.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + True + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/EnvelopeGenerator.Form/Models/BaseModel.vb b/EnvelopeGenerator.Common/Models/BaseModel.vb similarity index 94% rename from EnvelopeGenerator.Form/Models/BaseModel.vb rename to EnvelopeGenerator.Common/Models/BaseModel.vb index 4651a2c5..4a2eb9bf 100644 --- a/EnvelopeGenerator.Form/Models/BaseModel.vb +++ b/EnvelopeGenerator.Common/Models/BaseModel.vb @@ -1,5 +1,6 @@ Imports DigitalData.Modules.Database Imports DigitalData.Modules.Logging +Imports System.Data Public MustInherit Class BaseModel Protected Database As MSSQLServer diff --git a/EnvelopeGenerator.Form/Models/DocumentModel.vb b/EnvelopeGenerator.Common/Models/DocumentModel.vb similarity index 94% rename from EnvelopeGenerator.Form/Models/DocumentModel.vb rename to EnvelopeGenerator.Common/Models/DocumentModel.vb index b6292d48..3b800007 100644 --- a/EnvelopeGenerator.Form/Models/DocumentModel.vb +++ b/EnvelopeGenerator.Common/Models/DocumentModel.vb @@ -1,4 +1,5 @@ -Imports DigitalData.Modules.Base +Imports System.Data +Imports DigitalData.Modules.Base Public Class DocumentModel Inherits BaseModel diff --git a/EnvelopeGenerator.Form/Models/ElementModel.vb b/EnvelopeGenerator.Common/Models/ElementModel.vb similarity index 97% rename from EnvelopeGenerator.Form/Models/ElementModel.vb rename to EnvelopeGenerator.Common/Models/ElementModel.vb index 8b8284f0..83a5e8b3 100644 --- a/EnvelopeGenerator.Form/Models/ElementModel.vb +++ b/EnvelopeGenerator.Common/Models/ElementModel.vb @@ -1,4 +1,5 @@ -Imports DigitalData.Modules.Base +Imports System.Data +Imports DigitalData.Modules.Base Public Class ElementModel Inherits BaseModel diff --git a/EnvelopeGenerator.Form/Models/EnvelopeModel.vb b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb similarity index 99% rename from EnvelopeGenerator.Form/Models/EnvelopeModel.vb rename to EnvelopeGenerator.Common/Models/EnvelopeModel.vb index f260e87a..0cfa8e09 100644 --- a/EnvelopeGenerator.Form/Models/EnvelopeModel.vb +++ b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb @@ -1,6 +1,7 @@ Imports System.Data.SqlClient Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Base +Imports System.Data Public Class EnvelopeModel Inherits BaseModel diff --git a/EnvelopeGenerator.Common/Models/HistoryModel.vb b/EnvelopeGenerator.Common/Models/HistoryModel.vb new file mode 100644 index 00000000..79d33a94 --- /dev/null +++ b/EnvelopeGenerator.Common/Models/HistoryModel.vb @@ -0,0 +1,43 @@ +Imports System.Data +Imports System.Data.SqlClient + +Public Class HistoryModel + Inherits BaseModel + + Public Sub New(pState As State) + MyBase.New(pState) + End Sub + + Public Function Insert(pHistory As EnvelopeHistoryEntry) As Boolean + Try + Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE_HISTORY] + ([ENVELOPE_ID] + ,[STATUS] + ,[USER_EMAIL_ADDRESS] + ,[ACTION_TITLE] + ,[ACTION_DESCRIPTION]) + VALUES + (@ENVELOPE_ID + ,@STATUS + ,@EMAIL + ,@TITLE + ,@DESCRIPTION" + + Dim oCommand As New SqlCommand(oSql) + oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.Int).Value = pHistory.EnvelopeId + oCommand.Parameters.Add("STATUS", SqlDbType.NVarChar).Value = pHistory.Status + oCommand.Parameters.Add("EMAIL", SqlDbType.NVarChar).Value = pHistory.UserEmailAddress + oCommand.Parameters.Add("TITLE", SqlDbType.NVarChar).Value = pHistory.ActionTitle + oCommand.Parameters.Add("DESCRIPTION", SqlDbType.NVarChar).Value = pHistory.ActionDescription + + 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/Models/ReceiverModel.vb b/EnvelopeGenerator.Common/Models/ReceiverModel.vb similarity index 98% rename from EnvelopeGenerator.Form/Models/ReceiverModel.vb rename to EnvelopeGenerator.Common/Models/ReceiverModel.vb index fa3c6356..1d050c3a 100644 --- a/EnvelopeGenerator.Form/Models/ReceiverModel.vb +++ b/EnvelopeGenerator.Common/Models/ReceiverModel.vb @@ -1,4 +1,5 @@ -Imports System.Data.Common +Imports System.Data +Imports System.Data.Common Imports System.Data.SqlClient Imports DigitalData.Modules.Base Public Class ReceiverModel @@ -57,7 +58,6 @@ Public Class ReceiverModel Public Function Update(pReceiver As EnvelopeReceiver, pTransaction As SqlTransaction) As Boolean Try - ' TODO: Update ENVELOPE_RECEIVER instead Dim oSql As String = "UPDATE [dbo].[TBSIG_USER_RECEIVER] SET [NAME] = @NAME ,[COMPANY_NAME] = @COMPANY diff --git a/EnvelopeGenerator.Common/My Project/Application.Designer.vb b/EnvelopeGenerator.Common/My Project/Application.Designer.vb new file mode 100644 index 00000000..8ab460ba --- /dev/null +++ b/EnvelopeGenerator.Common/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/EnvelopeGenerator.Common/My Project/Application.myapp b/EnvelopeGenerator.Common/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/EnvelopeGenerator.Common/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb b/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..20792f4f --- /dev/null +++ b/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' Allgemeine Informationen über eine Assembly werden über die folgenden +' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +' die einer Assembly zugeordnet sind. + +' Werte der Assemblyattribute überprüfen + + + + + + + + + + +'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird. + + +' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +' +' Hauptversion +' Nebenversion +' Buildnummer +' Revision +' +' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +' indem Sie "*" wie unten gezeigt eingeben: +' + + + diff --git a/EnvelopeGenerator.Common/My Project/Resources.Designer.vb b/EnvelopeGenerator.Common/My Project/Resources.Designer.vb new file mode 100644 index 00000000..44cd4a43 --- /dev/null +++ b/EnvelopeGenerator.Common/My Project/Resources.Designer.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + ''' + ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EnvelopeGenerator.Common.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/EnvelopeGenerator.Common/My Project/Resources.resx b/EnvelopeGenerator.Common/My Project/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/EnvelopeGenerator.Common/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/EnvelopeGenerator.Common/My Project/Settings.Designer.vb b/EnvelopeGenerator.Common/My Project/Settings.Designer.vb new file mode 100644 index 00000000..eb775715 --- /dev/null +++ b/EnvelopeGenerator.Common/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "Automatische My.Settings-Speicherfunktion" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EnvelopeGenerator.Common.My.MySettings + Get + Return Global.EnvelopeGenerator.Common.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/EnvelopeGenerator.Common/My Project/Settings.settings b/EnvelopeGenerator.Common/My Project/Settings.settings new file mode 100644 index 00000000..85b890b3 --- /dev/null +++ b/EnvelopeGenerator.Common/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/EnvelopeGenerator.Form/Strings/Envelope.Designer.vb b/EnvelopeGenerator.Common/Strings/Envelope.Designer.vb similarity index 98% rename from EnvelopeGenerator.Form/Strings/Envelope.Designer.vb rename to EnvelopeGenerator.Common/Strings/Envelope.Designer.vb index 2da1efef..d170bcdd 100644 --- a/EnvelopeGenerator.Form/Strings/Envelope.Designer.vb +++ b/EnvelopeGenerator.Common/Strings/Envelope.Designer.vb @@ -43,7 +43,7 @@ Namespace My.Resources Friend Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager Get If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EnvelopeGenerator.Form.Envelope", GetType(Envelope).Assembly) + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EnvelopeGenerator.Common.Envelope", GetType(Envelope).Assembly) resourceMan = temp End If Return resourceMan diff --git a/EnvelopeGenerator.Form/Strings/Envelope.resx b/EnvelopeGenerator.Common/Strings/Envelope.resx similarity index 100% rename from EnvelopeGenerator.Form/Strings/Envelope.resx rename to EnvelopeGenerator.Common/Strings/Envelope.resx diff --git a/EnvelopeGenerator.Common_ALT/Config.vb b/EnvelopeGenerator.Common_ALT/Config.vb new file mode 100644 index 00000000..76538c1b --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Config.vb @@ -0,0 +1,6 @@ +Imports DigitalData.Modules.Config.ConfigAttributes + +Public Class Config + + Property ConnectionString As String = "" +End Class diff --git a/EnvelopeGenerator.Common_ALT/Constants.vb b/EnvelopeGenerator.Common_ALT/Constants.vb new file mode 100644 index 00000000..7d072efe --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Constants.vb @@ -0,0 +1,17 @@ +Public Class Constants + + Public Enum EnvelopeStatus + Created = 0 + Saved = 1 + Sent = 2 + End Enum + + Public Enum ElementType + Signature = 0 + End Enum + + Public Enum ElementStatus + Created = 0 + End Enum + +End Class diff --git a/EnvelopeGenerator.Common_ALT/DbConfig.vb b/EnvelopeGenerator.Common_ALT/DbConfig.vb new file mode 100644 index 00000000..582eb8aa --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/DbConfig.vb @@ -0,0 +1,3 @@ +Public Class DbConfig + Public Property DocumentPath As String = "" +End Class diff --git a/EnvelopeGenerator.Common_ALT/Entities/ElementMetadata.vb b/EnvelopeGenerator.Common_ALT/Entities/ElementMetadata.vb new file mode 100644 index 00000000..9a1e4be7 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Entities/ElementMetadata.vb @@ -0,0 +1,4 @@ +Public Class ElementMetadata + Public Property Index As Integer + Public Property Page As Integer +End Class diff --git a/EnvelopeGenerator.Common_ALT/Entities/Envelope.vb b/EnvelopeGenerator.Common_ALT/Entities/Envelope.vb new file mode 100644 index 00000000..2da513ad --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Entities/Envelope.vb @@ -0,0 +1,48 @@ +Public Class Envelope + Public Property Id As Integer = 0 + Public Property Subject As String + Public Property Message As String + Public Property UserId As Integer + Public Property Uuid As String = Guid.NewGuid.ToString() + Public Property Status As Constants.EnvelopeStatus + + Public Property Documents As New List(Of EnvelopeDocument) + Public Property Receivers As New List(Of EnvelopeReceiver) + + Public Function Validate() As List(Of String) + Dim oErrors As New List(Of String) + + If String.IsNullOrWhiteSpace(Subject) Then + oErrors.Add(My.Resources.Envelope.Missing_Subject) + End If + + If String.IsNullOrWhiteSpace(Message) Then + oErrors.Add(My.Resources.Envelope.Missing_Message) + End If + + If Documents.Count = 0 Then + oErrors.Add(My.Resources.Envelope.Missing_Documents) + End If + + If Receivers.Count = 0 Then + oErrors.Add(My.Resources.Envelope.Missing_Receivers) + End If + + For Each Receiver In Receivers + If IsValidEmailAddress(Receiver.Email) = False Then + oErrors.Add(String.Format(My.Resources.Envelope.Invalid_Email_Address, Receiver.Name)) + End If + Next + + Return oErrors + End Function + + Private Function IsValidEmailAddress(pEmailAddress As String) As Boolean + Try + Dim oAddress = New System.Net.Mail.MailAddress(pEmailAddress) + Return oAddress.Address = pEmailAddress + Catch ex As Exception + Return False + End Try + End Function +End Class diff --git a/EnvelopeGenerator.Common_ALT/Entities/EnvelopeDocument.vb b/EnvelopeGenerator.Common_ALT/Entities/EnvelopeDocument.vb new file mode 100644 index 00000000..80a7dda9 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Entities/EnvelopeDocument.vb @@ -0,0 +1,23 @@ +Imports System.IO + +Public Class EnvelopeDocument + Public Property Id As Integer + + Public Property FileInfo As FileInfo + + Public Property IsTempFile As Boolean = True + + Public Property EnvelopeId As Integer = 0 + + Public ReadOnly Property Filename As String + Get + Return FileInfo.Name + End Get + End Property + + Public ReadOnly Property Filepath As String + Get + Return FileInfo.FullName + End Get + End Property +End Class diff --git a/EnvelopeGenerator.Common_ALT/Entities/EnvelopeDocumentElement.vb b/EnvelopeGenerator.Common_ALT/Entities/EnvelopeDocumentElement.vb new file mode 100644 index 00000000..04555554 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Entities/EnvelopeDocumentElement.vb @@ -0,0 +1,15 @@ +Public Class EnvelopeDocumentElement + Public Property Id As Integer = 0 + Public Property X As Double + Public Property Y As Double + Public Property Width As Double + Public Property Height As Double + Public Property ElementType As String + Public Property DocumentId As Integer + Public Property ReceiverId As Integer + Public Property Required As Boolean = False + Public Property [ReadOnly] As Boolean = False + Public Property Page As Integer = 1 + Public Property Status As Constants.ElementStatus = Constants.ElementStatus.Created + Public Property AnnotationIndex As Integer +End Class diff --git a/EnvelopeGenerator.Common_ALT/Entities/EnvelopeHistoryEntry.vb b/EnvelopeGenerator.Common_ALT/Entities/EnvelopeHistoryEntry.vb new file mode 100644 index 00000000..1b7ce467 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Entities/EnvelopeHistoryEntry.vb @@ -0,0 +1,12 @@ +Imports EnvelopeGenerator.Common.Constants + +Public Class EnvelopeHistoryEntry + Public EnvelopeId As Integer + Public Status As EnvelopeStatus + Public UserEmailAddress As String + Public ActionTitle As String + Public ActionDescription As String + Public AddedWhen As Date + + +End Class diff --git a/EnvelopeGenerator.Common_ALT/Entities/EnvelopeReceiver.vb b/EnvelopeGenerator.Common_ALT/Entities/EnvelopeReceiver.vb new file mode 100644 index 00000000..e1fd94ca --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Entities/EnvelopeReceiver.vb @@ -0,0 +1,26 @@ +Imports DigitalData.Modules.Base + +Public Class EnvelopeReceiver + Public Property Id As Integer + Public Property UserId As Integer + + Public Property Name As String + Public Property Company As String = "" + Public Property JobTitle As String = "" + + Public Property Email As String + Public ReadOnly Property Signature As String + Get + Return StringEx.GetChecksum(Email.ToUpper) + End Get + End Property + Public ReadOnly Property HasId As Boolean + Get + Return Id > 0 + End Get + End Property + + Public Property Sequence As Integer = 0 + Public Property PrivateMessage As String = "" + Public Property AccessCode As String = "" +End Class diff --git a/EnvelopeGenerator.Common_ALT/Entities/State.vb b/EnvelopeGenerator.Common_ALT/Entities/State.vb new file mode 100644 index 00000000..b3a52da3 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Entities/State.vb @@ -0,0 +1,10 @@ +Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Logging + +Public Class State + Public Property UserId As Integer + Public Property Config As Config + Public Property DbConfig As DbConfig + Public Property LogConfig As LogConfig + Public Property Database As MSSQLServer +End Class diff --git a/EnvelopeGenerator.Common_ALT/EnvelopeGenerator.Common.old.vbproj b/EnvelopeGenerator.Common_ALT/EnvelopeGenerator.Common.old.vbproj new file mode 100644 index 00000000..09e884bb --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/EnvelopeGenerator.Common.old.vbproj @@ -0,0 +1,44 @@ + + + + EnvelopeGenerator.Common + net6.0 + + + + + + + + + + ..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll + + + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + + + + True + True + Envelope.resx + + + + + + My.Resources + Envelope.Designer.vb + ResXFileCodeGenerator + + + + diff --git a/EnvelopeGenerator.Common_ALT/Models/BaseModel.vb b/EnvelopeGenerator.Common_ALT/Models/BaseModel.vb new file mode 100644 index 00000000..4a2eb9bf --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Models/BaseModel.vb @@ -0,0 +1,15 @@ +Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Logging +Imports System.Data + +Public MustInherit Class BaseModel + Protected Database As MSSQLServer + Protected Logger As Logger + Protected State As State + + Public Sub New(pState As State) + Logger = pState.LogConfig.GetLogger() + Database = pState.Database + State = pState + End Sub +End Class diff --git a/EnvelopeGenerator.Common_ALT/Models/DocumentModel.vb b/EnvelopeGenerator.Common_ALT/Models/DocumentModel.vb new file mode 100644 index 00000000..3b800007 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Models/DocumentModel.vb @@ -0,0 +1,33 @@ +Imports System.Data +Imports DigitalData.Modules.Base +Public Class DocumentModel + Inherits BaseModel + + Public Sub New(pState As State) + MyBase.New(pState) + End Sub + + Private Function ToDocument(pRow As DataRow) As EnvelopeDocument + Return New EnvelopeDocument() With { + .Id = pRow.ItemEx("GUID", 0), + .EnvelopeId = pRow.ItemEx("ENVELOPE_ID", 0), + .FileInfo = New IO.FileInfo(pRow.ItemEx("FILEPATH", "")), + .IsTempFile = False + } + End Function + + Public Function List(pEnvelopeId As Integer) As IEnumerable(Of EnvelopeDocument) + Try + Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE_DOCUMENT] WHERE ENVELOPE_ID = {pEnvelopeId}" + Dim oTable = Database.GetDatatable(oSql) + + Return oTable?.Rows.Cast(Of DataRow). + Select(AddressOf ToDocument). + ToList() + + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function +End Class diff --git a/EnvelopeGenerator.Common_ALT/Models/ElementModel.vb b/EnvelopeGenerator.Common_ALT/Models/ElementModel.vb new file mode 100644 index 00000000..83a5e8b3 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Models/ElementModel.vb @@ -0,0 +1,56 @@ +Imports System.Data +Imports DigitalData.Modules.Base + +Public Class ElementModel + Inherits BaseModel + + Public Sub New(pState As State) + MyBase.New(pState) + End Sub + + Private Function ToElement(pRow As DataRow) As EnvelopeDocumentElement + Return New EnvelopeDocumentElement() With { + .Id = pRow.ItemEx("GUID", 0), + .DocumentId = pRow.ItemEx("DOCUMENT_ID", 0), + .ReceiverId = pRow.ItemEx("RECEIVER_ID", 0), + .ElementType = [Enum].Parse(GetType(Constants.ElementType), pRow.ItemEx("ELEMENT_TYPE", Constants.ElementType.Signature.ToString)), + .X = pRow.ItemEx("POSITION_X", 0.0), + .Y = pRow.ItemEx("POSITION_Y", 0.0), + .Width = pRow.ItemEx("WIDTH", 0.0), + .Height = pRow.ItemEx("HEIGHT", 0.0), + .Page = pRow.ItemEx("PAGE", 0), + .AnnotationIndex = pRow.ItemEx("ANNOTATION_INDEX", 0) + } + End Function + + Public Function ElementsExist(pEnvelopeId As Integer, pReceiverId As Integer) As Boolean + Try + Dim oSql = $"SELECT COUNT(*) FROM [dbo].[TBSIG_DOCUMENT_RECEIVER_ELEMENT] T + JOIN TBSIG_ENVELOPE_DOCUMENT T2 ON T.DOCUMENT_ID = T2.GUID + WHERE T.RECEIVER_ID = {pReceiverId} AND T2.ENVELOPE_ID = {pEnvelopeId}" + Dim oElementCount As Integer = Database.GetScalarValue(oSql) + + Return oElementCount > 0 + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function List(pDocumentId As Integer) As List(Of EnvelopeDocumentElement) + Try + Dim oSql = $"SELECT * FROM [dbo].[TBSIG_DOCUMENT_RECEIVER_ELEMENT] WHERE DOCUMENT_ID = {pDocumentId} ORDER BY PAGE ASC, ANNOTATION_INDEX ASC" + Dim oTable = Database.GetDatatable(oSql) + + Return oTable?.Rows.Cast(Of DataRow). + Select(AddressOf ToElement). + ToList() + + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function + +End Class diff --git a/EnvelopeGenerator.Common_ALT/Models/EnvelopeModel.vb b/EnvelopeGenerator.Common_ALT/Models/EnvelopeModel.vb new file mode 100644 index 00000000..0cfa8e09 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Models/EnvelopeModel.vb @@ -0,0 +1,102 @@ +Imports System.Data.SqlClient +Imports DigitalData.Modules.Logging +Imports DigitalData.Modules.Base +Imports System.Data + +Public Class EnvelopeModel + Inherits BaseModel + + Public Sub New(pState As State) + MyBase.New(pState) + End Sub + + Private Function ToEnvelope(pRow As DataRow) As Envelope + Dim oEnvelope = New Envelope() With { + .Id = pRow.ItemEx("GUID", 0), + .Uuid = pRow.ItemEx("ENVELOPE_UUID", ""), + .Subject = pRow.ItemEx("SUBJECT", ""), + .Message = pRow.ItemEx("MESSAGE", ""), + .UserId = State.UserId, + .Status = ObjectEx.ToEnum(Of Constants.EnvelopeStatus)(pRow.ItemEx("STATUS", "Created")) + } + + Return oEnvelope + End Function + + Public Function List() As IEnumerable(Of Envelope) + Try + Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId}" + Dim oTable = Database.GetDatatable(oSql) + + Return oTable?.Rows.Cast(Of DataRow). + Select(AddressOf ToEnvelope). + ToList() + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function + + Public Function Insert(pEnvelope As Envelope) As Boolean + Try + Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE] (SUBJECT, MESSAGE, ENVELOPE_UUID, STATUS, USER_ID) VALUES (@SUBJECT, @MESSAGE, @UUID, @STATUS, @USER_ID)" + Dim oCommand As New SqlCommand(oSql) + oCommand.Parameters.Add("SUBJECT", SqlDbType.NVarChar).Value = String.Empty + oCommand.Parameters.Add("MESSAGE", SqlDbType.NVarChar).Value = String.Empty + oCommand.Parameters.Add("UUID", SqlDbType.NVarChar).Value = pEnvelope.Uuid + oCommand.Parameters.Add("STATUS", SqlDbType.NVarChar).Value = Constants.EnvelopeStatus.Created + oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pEnvelope.UserId + + If Database.ExecuteNonQuery(oCommand) Then + pEnvelope.Id = GetEnvelopeId(pEnvelope) + Return True + Else + Return False + End If + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function Update(pEnvelope As Envelope, pTransaction As SqlTransaction) As Boolean + Try + Dim oSql = "UPDATE [dbo].[TBSIG_ENVELOPE] SET [SUBJECT] = @SUBJECT, [MESSAGE] = @MESSAGE, [STATUS] = @STATUS WHERE GUID = @ID AND USER_ID = @USER_ID" + Dim oCommand As New SqlCommand(oSql) + oCommand.Parameters.Add("SUBJECT", SqlDbType.NVarChar).Value = pEnvelope.Subject + oCommand.Parameters.Add("MESSAGE", SqlDbType.NVarChar).Value = pEnvelope.Message + oCommand.Parameters.Add("STATUS", SqlDbType.NVarChar).Value = pEnvelope.Status + + oCommand.Parameters.Add("ID", SqlDbType.Int).Value = pEnvelope.Id + oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pEnvelope.UserId + + Return Database.ExecuteNonQuery(oCommand, pTransaction) + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function Delete(pEnvelope As Envelope) As Boolean + Try + Dim oSql = $"DELETE FROM [dbo].[TBSIG_ENVELOPE] WHERE GUID = {pEnvelope.Id}" + Return Database.ExecuteNonQuery(oSql) + + Catch ex As Exception + Return False + Logger.Error(ex) + End Try + End Function + + Private Function GetEnvelopeId(pEnvelope As Envelope) As Integer + Try + Return Database.GetScalarValue($"SELECT MAX(GUID) FROM TBSIG_ENVELOPE WHERE USER_ID = {pEnvelope.UserId}") + + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function +End Class diff --git a/EnvelopeGenerator.Common_ALT/Models/HistoryModel.vb b/EnvelopeGenerator.Common_ALT/Models/HistoryModel.vb new file mode 100644 index 00000000..79d33a94 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Models/HistoryModel.vb @@ -0,0 +1,43 @@ +Imports System.Data +Imports System.Data.SqlClient + +Public Class HistoryModel + Inherits BaseModel + + Public Sub New(pState As State) + MyBase.New(pState) + End Sub + + Public Function Insert(pHistory As EnvelopeHistoryEntry) As Boolean + Try + Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE_HISTORY] + ([ENVELOPE_ID] + ,[STATUS] + ,[USER_EMAIL_ADDRESS] + ,[ACTION_TITLE] + ,[ACTION_DESCRIPTION]) + VALUES + (@ENVELOPE_ID + ,@STATUS + ,@EMAIL + ,@TITLE + ,@DESCRIPTION" + + Dim oCommand As New SqlCommand(oSql) + oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.Int).Value = pHistory.EnvelopeId + oCommand.Parameters.Add("STATUS", SqlDbType.NVarChar).Value = pHistory.Status + oCommand.Parameters.Add("EMAIL", SqlDbType.NVarChar).Value = pHistory.UserEmailAddress + oCommand.Parameters.Add("TITLE", SqlDbType.NVarChar).Value = pHistory.ActionTitle + oCommand.Parameters.Add("DESCRIPTION", SqlDbType.NVarChar).Value = pHistory.ActionDescription + + 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.Common_ALT/Models/ReceiverModel.vb b/EnvelopeGenerator.Common_ALT/Models/ReceiverModel.vb new file mode 100644 index 00000000..1d050c3a --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Models/ReceiverModel.vb @@ -0,0 +1,159 @@ +Imports System.Data +Imports System.Data.Common +Imports System.Data.SqlClient +Imports DigitalData.Modules.Base +Public Class ReceiverModel + Inherits BaseModel + + Public Sub New(pState As State) + MyBase.New(pState) + End Sub + + Private Function ToReceiver(pRow As DataRow) As EnvelopeReceiver + Return New EnvelopeReceiver() With { + .Id = pRow.ItemEx("GUID", 0), + .Email = pRow.ItemEx("EMAIL_ADDRESS", ""), + .Name = pRow.ItemEx("NAME", ""), + .Sequence = pRow.ItemEx("SEQUENCE", 0) + } + End Function + + Public Function TestReceiverExists(pReceiver As EnvelopeReceiver) As Boolean + Try + Dim oGuid = Database.GetScalarValue($"SELECT COALESCE(GUID, 0) FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{pReceiver.Email}'") + pReceiver.Id = oGuid + Return oGuid > 0 + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function Insert(pReceiver As EnvelopeReceiver, pTransaction As SqlTransaction) As Boolean + Try + Dim oSql As String = "INSERT INTO [dbo].[TBSIG_RECEIVER] + ([EMAIL_ADDRESS] + ,[SIGNATURE]) + VALUES + (@EMAIL + ,@SIGNATURE)" + + Dim oCommand = New SqlCommand(oSql) + oCommand.Parameters.Add("EMAIL", SqlDbType.NVarChar).Value = pReceiver.Email + oCommand.Parameters.Add("SIGNATURE", SqlDbType.NVarChar).Value = pReceiver.Signature + + Dim oResult = Database.ExecuteNonQuery(oCommand, pTransaction) + If oResult = True Then + pReceiver.Id = GetReceiverId(pReceiver.Email, pTransaction) + Else + Return False + End If + + Return True + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function Update(pReceiver As EnvelopeReceiver, pTransaction As SqlTransaction) As Boolean + Try + Dim oSql As String = "UPDATE [dbo].[TBSIG_USER_RECEIVER] + SET [NAME] = @NAME + ,[COMPANY_NAME] = @COMPANY + ,[JOB_TITLE] = @JOB + WHERE RECEIVER_ID = @RECEIVER_ID" + + Dim oCommand = New SqlCommand(oSql) + oCommand.Parameters.Add("NAME", SqlDbType.NVarChar).Value = pReceiver.Name + oCommand.Parameters.Add("COMPANY", SqlDbType.NVarChar).Value = pReceiver.Company + oCommand.Parameters.Add("JOB", SqlDbType.NVarChar).Value = pReceiver.JobTitle + oCommand.Parameters.Add("RECEIVER_ID", SqlDbType.Int).Value = pReceiver.Id + oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pReceiver.Id + + Return Database.ExecuteNonQuery(oCommand, pTransaction) + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function Unassign(pEnvelope As Envelope, pTransaction As SqlTransaction) As Boolean + Try + Return Database.ExecuteNonQuery($"DELETE FROM [dbo].[TBSIG_ENVELOPE_RECEIVER] WHERE [ENVELOPE_ID] = {pEnvelope.Id}", pTransaction) + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function Assign(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pTransaction As SqlTransaction) As Boolean + Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE_RECEIVER] + ([ENVELOPE_ID] + ,[RECEIVER_ID] + ,[PRIVATE_MESSAGE] + ,[ACCESS_CODE] + ,[NAME] + ,[JOB_TITLE] + ,[COMPANY_NAME] + ,[SEQUENCE]) + VALUES + (@ENVELOPE_ID + ,@RECEIVER_ID + ,@MESSAGE + ,@ACCESS_CODE + ,@NAME + ,@JOB + ,@COMPANY + ,@SEQUENCE)" + + Dim oCommand As New SqlCommand(oSql) + oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.NVarChar).Value = pEnvelope.Id + oCommand.Parameters.Add("RECEIVER_ID", SqlDbType.NVarChar).Value = pReceiver.Id + oCommand.Parameters.Add("MESSAGE", SqlDbType.NVarChar).Value = pReceiver.PrivateMessage + oCommand.Parameters.Add("ACCESS_CODE", SqlDbType.NVarChar).Value = pReceiver.AccessCode + oCommand.Parameters.Add("NAME", SqlDbType.NVarChar).Value = pReceiver.Name + oCommand.Parameters.Add("JOB", SqlDbType.NVarChar).Value = pReceiver.JobTitle + oCommand.Parameters.Add("COMPANY", SqlDbType.NVarChar).Value = pReceiver.Company + oCommand.Parameters.Add("SEQUENCE", SqlDbType.NVarChar).Value = pReceiver.Sequence + + Return Database.ExecuteNonQuery(oCommand, pTransaction) + End Function + + Public Function List(pEnvelopeId As Integer) As IEnumerable(Of EnvelopeReceiver) + Try + Dim oSql = $"SELECT * FROM [dbo].[VWSIG_ENVELOPE_RECEIVERS] WHERE ENVELOPE_ID = {pEnvelopeId}" + Dim oTable = Database.GetDatatable(oSql) + + Return oTable?.Rows.Cast(Of DataRow). + Select(AddressOf ToReceiver). + ToList() + + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function + + Public Function Delete(pReceiverId As Integer, pDocumentId As Integer) As Boolean + Try + Dim oSql = $"DELETE FROM TBSIG_DOCUMENT_RECEIVER WHERE RECEIVER_ID = {pReceiverId} AND DOCUMENT_ID = {pDocumentId}" + Return Database.ExecuteNonQuery(oSql) + + Catch ex As Exception + Logger.Error(ex) + Return False + + End Try + End Function + + Private Function GetReceiverId(pEmailAddress As String, pTransaction As SqlTransaction) As Integer + Try + Return Database.GetScalarValue($"SELECT GUID FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{pEmailAddress}'", pTransaction) + + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function +End Class diff --git a/EnvelopeGenerator.Common_ALT/Strings/Envelope.Designer.vb b/EnvelopeGenerator.Common_ALT/Strings/Envelope.Designer.vb new file mode 100644 index 00000000..d170bcdd --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Strings/Envelope.Designer.vb @@ -0,0 +1,112 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + ''' + ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + ''' + _ + Friend Class Envelope + + Private Shared resourceMan As Global.System.Resources.ResourceManager + + Private Shared resourceCulture As Global.System.Globalization.CultureInfo + + _ + Friend Sub New() + MyBase.New + End Sub + + ''' + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + ''' + _ + Friend Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EnvelopeGenerator.Common.Envelope", GetType(Envelope).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + ''' + _ + Friend Shared Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Empfänger {0} hat keine gültige Email Addresse. ähnelt. + ''' + Friend Shared ReadOnly Property Invalid_Email_Address() As String + Get + Return ResourceManager.GetString("Invalid Email Address", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Missing Documents ähnelt. + ''' + Friend Shared ReadOnly Property Missing_Documents() As String + Get + Return ResourceManager.GetString("Missing Documents", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Missing Message ähnelt. + ''' + Friend Shared ReadOnly Property Missing_Message() As String + Get + Return ResourceManager.GetString("Missing Message", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Missing Receivers ähnelt. + ''' + Friend Shared ReadOnly Property Missing_Receivers() As String + Get + Return ResourceManager.GetString("Missing Receivers", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Missing Subject ähnelt. + ''' + Friend Shared ReadOnly Property Missing_Subject() As String + Get + Return ResourceManager.GetString("Missing Subject", resourceCulture) + End Get + End Property + End Class +End Namespace diff --git a/EnvelopeGenerator.Common_ALT/Strings/Envelope.resx b/EnvelopeGenerator.Common_ALT/Strings/Envelope.resx new file mode 100644 index 00000000..9c48cb82 --- /dev/null +++ b/EnvelopeGenerator.Common_ALT/Strings/Envelope.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Empfänger {0} hat keine gültige Email Addresse. + + + Missing Documents + + + Missing Message + + + Missing Receivers + + + Missing Subject + + \ No newline at end of file diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb index e809ca72..27fb937f 100644 --- a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb +++ b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb @@ -5,6 +5,7 @@ Imports System.Runtime.Remoting.Messaging Imports DigitalData.Modules.Base Imports DigitalData.Modules.Database Imports DigitalData.Modules.Logging +Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Form.My.Resources Public Class EnvelopeEditorController @@ -66,7 +67,7 @@ Public Class EnvelopeEditorController Dim oTransaction = oConnection.BeginTransaction(IsolationLevel.ReadUncommitted) Try - pEnvelope.Status = Constants.EnvelopeStatus.Saved + pEnvelope.Status = Common.Constants.EnvelopeStatus.Created If SaveEnvelopeDocumentsToFilesystem(pEnvelope) = False Then Throw New ApplicationException @@ -97,7 +98,7 @@ Public Class EnvelopeEditorController End Function Public Function CleanupEnvelope() As Boolean - If Envelope.Status = Constants.EnvelopeStatus.Created Then + If Envelope.Status = Common.Constants.EnvelopeStatus.Created Then 'TODO: Delete Documents and Receivers and elements Return EnvelopeModel.Delete(Envelope) @@ -171,7 +172,7 @@ Public Class EnvelopeEditorController Return oEnvelopePath Catch ex As Exception - Logger.error(ex) + Logger.Error(ex) Return Nothing End Try End Function diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeListController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeListController.vb index 85f697f6..f6c57dd9 100644 --- a/EnvelopeGenerator.Form/Controllers/EnvelopeListController.vb +++ b/EnvelopeGenerator.Form/Controllers/EnvelopeListController.vb @@ -1,5 +1,6 @@ Imports DigitalData.Modules.Base Imports DigitalData.Modules.Database +Imports EnvelopeGenerator.Common Public Class EnvelopeListController Inherits BaseClass diff --git a/EnvelopeGenerator.Form/Controllers/FieldEditorController.vb b/EnvelopeGenerator.Form/Controllers/FieldEditorController.vb index 0f0908bb..5d218f50 100644 --- a/EnvelopeGenerator.Form/Controllers/FieldEditorController.vb +++ b/EnvelopeGenerator.Form/Controllers/FieldEditorController.vb @@ -3,6 +3,7 @@ Imports DevExpress.Utils.CommonDialogs Imports DevExpress.XtraBars.Docking2010.Views.NativeMdi Imports DigitalData.Modules.Base Imports DigitalData.Modules.Database +Imports EnvelopeGenerator.Common Imports GdPicture14.Annotations Public Class FieldEditorController @@ -36,7 +37,7 @@ Public Class FieldEditorController oELement.Y = pAnnotation.Top Else Elements.Add(New EnvelopeDocumentElement() With { - .ElementType = Constants.ElementType.Signature.ToString, + .ElementType = Common.Constants.ElementType.Signature.ToString, .Height = pAnnotation.Height, .Width = pAnnotation.Width, .X = pAnnotation.Left, diff --git a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj index 377f0c36..d98466f1 100644 --- a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj +++ b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj @@ -102,18 +102,9 @@ - - - - - - - - - Form @@ -132,22 +123,12 @@ Form - - - - - True Application.myapp True - - True - True - Envelope.resx - frmEnvelopeEditor.vb @@ -168,11 +149,6 @@ True Resources.resx - - My.Resources - ResXFileCodeGenerator - Envelope.Designer.vb - @@ -198,6 +174,12 @@ PreserveNewest + + + {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} + EnvelopeGenerator.Common + +