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
+
+