06-07-2023

This commit is contained in:
Jonathan Jenne 2023-07-06 14:24:30 +02:00
parent 67e2e29c14
commit b63655b212
7 changed files with 289 additions and 63 deletions

View File

@ -1,6 +1,4 @@
Imports DevExpress.Utils.DirectXPaint Imports System.Data.SqlClient
Imports System.Data.SqlClient
Imports System.Runtime.Remoting.Messaging
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
@ -9,15 +7,21 @@ Public Class EnvelopeController
Inherits BaseClass Inherits BaseClass
Private ReadOnly Database As MSSQLServer Private ReadOnly Database As MSSQLServer
Private Envelope As Envelope = Nothing
Public Sub New(pState As State) Public Sub New(pState As State)
MyBase.New(pState.LogConfig) MyBase.New(pState.LogConfig)
Database = pState.Database Database = pState.Database
End Sub End Sub
#Region "Public"
Public Function SaveEnvelope(pEnvelope As Envelope) As Boolean Public Function SaveEnvelope(pEnvelope As Envelope) As Boolean
If pEnvelope.Id > 0 Then Dim oConnection = Database.GetConnection()
Try Dim oTransaction = oConnection.BeginTransaction(IsolationLevel.ReadUncommitted)
Try
If pEnvelope.Id > 0 Then
Dim oSql = "UPDATE [dbo].[TBSIG_ENVELOPE] SET [SUBJECT] = @SUBJECT, [MESSAGE] = @MESSAGE, [ENVELOPE_UUID] = @UUID WHERE GUID = @ID AND USER_ID = @USER_ID" Dim oSql = "UPDATE [dbo].[TBSIG_ENVELOPE] SET [SUBJECT] = @SUBJECT, [MESSAGE] = @MESSAGE, [ENVELOPE_UUID] = @UUID WHERE GUID = @ID AND USER_ID = @USER_ID"
Dim oCommand As New SqlCommand(oSql) Dim oCommand As New SqlCommand(oSql)
oCommand.Parameters.Add("SUBJECT", SqlDbType.NVarChar).Value = pEnvelope.Subject oCommand.Parameters.Add("SUBJECT", SqlDbType.NVarChar).Value = pEnvelope.Subject
@ -26,18 +30,12 @@ Public Class EnvelopeController
oCommand.Parameters.Add("ID", SqlDbType.Int).Value = pEnvelope.Id oCommand.Parameters.Add("ID", SqlDbType.Int).Value = pEnvelope.Id
oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pEnvelope.UserId oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pEnvelope.UserId
Dim oResult = Database.ExecuteNonQuery(oCommand) Dim oResult = Database.ExecuteNonQueryWithConnectionObject(oCommand, oConnection, MSSQLServer.TransactionMode.ExternalTransaction, oTransaction)
If oResult = True Then If oResult = False Then
Return True Throw New ApplicationException
Else
Return False
End If End If
Catch ex As Exception Else
Logger.Error(ex)
End Try
Else
Try
Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE] (SUBJECT, MESSAGE, ENVELOPE_UUID, STATUS, USER_ID) VALUES (@SUBJECT, @MESSAGE, @UUID, @STATUS, @USER_ID)" 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) Dim oCommand As New SqlCommand(oSql)
oCommand.Parameters.Add("SUBJECT", SqlDbType.NVarChar).Value = pEnvelope.Subject oCommand.Parameters.Add("SUBJECT", SqlDbType.NVarChar).Value = pEnvelope.Subject
@ -46,23 +44,209 @@ Public Class EnvelopeController
oCommand.Parameters.Add("STATUS", SqlDbType.NVarChar).Value = pEnvelope.Status.ToString() oCommand.Parameters.Add("STATUS", SqlDbType.NVarChar).Value = pEnvelope.Status.ToString()
oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pEnvelope.UserId oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pEnvelope.UserId
Dim oResult = Database.ExecuteNonQuery(oCommand) If Database.ExecuteNonQuery(oCommand, oTransaction) = False Then
If oResult = True Then Throw New ApplicationException
pEnvelope.Id = GetEnvelopeId(pEnvelope.UserId)
Return True
Else
Return False
End If End If
Catch ex As Exception pEnvelope.Id = GetEnvelopeId(pEnvelope.UserId, oTransaction)
Logger.Error(ex)
End Try If SaveEnvelopeReceivers(pEnvelope, oTransaction) = False Then
Throw New ApplicationException
End If
If SaveEnvelopeDocuments(pEnvelope, oTransaction) = False Then
Throw New ApplicationException
End If
End If
oTransaction.Commit()
Envelope = pEnvelope
Return True
Catch ex As Exception
Logger.Error(ex)
oTransaction.Rollback()
Return False
End Try
End Function
Public Function DeleteDocument(pDocument As EnvelopeFile) As Boolean
If Envelope Is Nothing Then
Return False
End If
Dim oSql = "DELETE FROM [dbo].[TBSIG_ENVELOPE_DOCUMENT] WHERE FILENAME = @FILENAME AND ENVELOPE_ID = @ENVELOPE_ID"
Dim oCommand As New SqlCommand(oSql)
oCommand.Parameters.Add("FILENAME", SqlDbType.NVarChar).Value = pDocument.Filename
oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.Int).Value = Envelope.Id
Return Database.ExecuteNonQuery(oCommand)
End Function
#End Region
Private Function SaveEnvelopeDocuments(pEnvelope As Envelope, pTransaction As SqlTransaction) As Boolean
Try
Return pEnvelope.Documents.
Select(Function(d) InsertDocument(pEnvelope, d, pTransaction)).
All(Function(pResult) pResult = True)
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Private Function InsertDocument(pEnvelope As Envelope, pDocument As EnvelopeFile, pTransaction As SqlTransaction) As Boolean
Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE_DOCUMENT]
([FILENAME]
,[FILEPATH]
,[ENVELOPE_ID])
VALUES
(@FILENAME
,@FILEPATH
,@ENVELOPE_ID)"
Dim oCommand As New SqlCommand(oSql)
oCommand.Parameters.Add("FILENAME", SqlDbType.NVarChar).Value = pDocument.Filename
oCommand.Parameters.Add("FILEPATH", SqlDbType.NVarChar).Value = pDocument.Filepath
oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.Int).Value = pEnvelope.Id
pDocument.EnvelopeId = pEnvelope.Id
Return Database.ExecuteNonQuery(oCommand, pTransaction)
End Function
Private Function SaveEnvelopeReceivers(pEnvelope As Envelope, pTransaction As SqlTransaction) As Boolean
Try
If pEnvelope.Id = Nothing Then
Throw New ArgumentNullException("EnvelopeId")
End If
If UpdateReceivers(pEnvelope.Receivers, pTransaction) = False Then
Return False
End If
If AssignReceivers(pEnvelope, pTransaction) = False Then
Return False
End If
Return True
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Private Function UpdateReceivers(pReceivers As List(Of Receiver), pTransaction As SqlTransaction) As Boolean
Try
Return pReceivers.
Select(Function(r) UpdateReceiver(r, pTransaction)).
All(Function(pResult) pResult = True)
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Private Function AssignReceivers(pEnvelope As Envelope, pTransaction As SqlTransaction) As Boolean
If Database.ExecuteNonQuery($"DELETE FROM [dbo].[TBSIG_ENVELOPE_RECEIVER] WHERE [ENVELOPE_ID] = {pEnvelope.Id}") = False Then
Return False
End If
Return pEnvelope.Receivers.
Select(Function(r) AssignReceiver(pEnvelope, r, pTransaction)).
All(Function(pResult) pResult = True)
End Function
Private Function AssignReceiver(pEnvelope As Envelope, pReceiver As Receiver, pTransaction As SqlTransaction) As Boolean
Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE_RECEIVER]
([ENVELOPE_ID]
,[RECEIVER_ID]
,[PRIVATE_MESSAGE]
,[ACCESS_CODE]
,[SEQUENCE])
VALUES
(@ENVELOPE_ID
,@RECEIVER_ID
,@MESSAGE
,@ACCESS_CODE
,@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("SEQUENCE", SqlDbType.NVarChar).Value = pReceiver.Sequence
Return Database.ExecuteNonQuery(oCommand, pTransaction)
End Function
Private Function UpdateReceiver(pReceiver As Receiver, pTransaction As SqlTransaction) As Boolean
If pReceiver.Id = 0 Then
Dim oSql As String = "INSERT INTO [dbo].[TBSIG_RECEIVER]
([NAME]
,[EMAIL_ADDRESS]
,[SIGNATURE]
,[COMPANY_NAME]
,[JOB_TITLE])
VALUES
(@NAME
,@EMAIL
,@SIGNATURE
,@COMPANY
,@JOB)"
Dim oCommand = New SqlCommand(oSql)
oCommand.Parameters.Add("NAME", SqlDbType.NVarChar).Value = pReceiver.Name
oCommand.Parameters.Add("EMAIL", SqlDbType.NVarChar).Value = pReceiver.Email
oCommand.Parameters.Add("SIGNATURE", SqlDbType.NVarChar).Value = pReceiver.Signature
oCommand.Parameters.Add("COMPANY", SqlDbType.NVarChar).Value = pReceiver.Company
oCommand.Parameters.Add("JOB", SqlDbType.NVarChar).Value = pReceiver.JobTitle
Dim oResult = Database.ExecuteNonQuery(oCommand, pTransaction)
If oResult = True Then
pReceiver.Id = GetReceiverId(pReceiver.Email, pTransaction)
Else
Return False
End If
Return True
Else
Dim oSql As String = "UPDATE [dbo].[TBSIG_RECEIVER]
SET [NAME] = @NAME
,[COMPANY_NAME] = @COMPANY
,[JOB_TITLE] = @JOB
WHERE GUID = @GUID"
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("GUID", SqlDbType.Int).Value = pReceiver.Id
Return Database.ExecuteNonQuery(oCommand, pTransaction)
End If End If
End Function End Function
Private Function GetEnvelopeId(pUserId As Integer) As Integer Private Function GetEnvelopeId(pUserId As Integer, pTransaction As SqlTransaction) As Integer
Try Try
Return Database.GetScalarValue($"SELECT MAX(GUID) FROM TBSIG_ENVELOPE WHERE USER_ID = {pUserId}") Return Database.GetScalarValue($"SELECT MAX(GUID) FROM TBSIG_ENVELOPE WHERE USER_ID = {pUserId}", pTransaction)
Catch ex As Exception
Logger.Error(ex)
Return Nothing
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 Catch ex As Exception
Logger.Error(ex) Logger.Error(ex)

View File

@ -7,7 +7,7 @@
Public Property Status As Constants.EnvelopeStatus = Constants.EnvelopeStatus.Created Public Property Status As Constants.EnvelopeStatus = Constants.EnvelopeStatus.Created
Public Property Documents As New List(Of EnvelopeFile) Public Property Documents As New List(Of EnvelopeFile)
Public Property Receivers As New List(Of EnvelopeReceiver) Public Property Receivers As New List(Of Receiver)
Public Sub New(pSubject As String, pMessage As String, pUserId As Integer) Public Sub New(pSubject As String, pMessage As String, pUserId As Integer)
Subject = pSubject Subject = pSubject

View File

@ -1,7 +1,9 @@
Imports System.IO Imports System.IO
Public Class EnvelopeFile Public Class EnvelopeFile
Private Property FileInfo As FileInfo Public Property FileInfo As FileInfo
Public Property EnvelopeId As Integer = 0
Public ReadOnly Property Filename As String Public ReadOnly Property Filename As String
Get Get
@ -9,7 +11,9 @@ Public Class EnvelopeFile
End Get End Get
End Property End Property
Public Sub New(pFilePath As String) Public ReadOnly Property Filepath As String
FileInfo = New FileInfo(pFilePath) Get
End Sub Return FileInfo.FullName
End Get
End Property
End Class End Class

View File

@ -1,4 +1,22 @@
Public Class EnvelopeReceiver Imports DigitalData.Modules.Base
Public Class Receiver
Public Property Id As Integer
Public Property Name As String Public Property Name As String
Public Property Company As String = ""
Public Property JobTitle As String = ""
Public Property Email As String Public Property Email As String
Public ReadOnly Property Signature As String
Get
Return StringEx.GetChecksum(Email.ToUpper)
End Get
End Property
Public Property Sequence As Integer = 0
Public Property PrivateMessage As String = ""
Public Property AccessCode As String = ""
End Class End Class

View File

@ -48,6 +48,7 @@ Partial Public Class frmEditor
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl() Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
Me.GridDocuments = New DevExpress.XtraGrid.GridControl() Me.GridDocuments = New DevExpress.XtraGrid.GridControl()
Me.FrmEditorBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.ViewDocuments = New DevExpress.XtraGrid.Views.Tile.TileView() Me.ViewDocuments = New DevExpress.XtraGrid.Views.Tile.TileView()
Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl() Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl()
Me.PanelControl2 = New DevExpress.XtraEditors.PanelControl() Me.PanelControl2 = New DevExpress.XtraEditors.PanelControl()
@ -59,12 +60,13 @@ Partial Public Class frmEditor
Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem()
Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl() Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl()
Me.GridReceivers = New DevExpress.XtraGrid.GridControl() Me.GridReceivers = New DevExpress.XtraGrid.GridControl()
Me.envelopeReceiverBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.EnvelopeReceiverBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.ViewReceivers = New DevExpress.XtraGrid.Views.Grid.GridView() Me.ViewReceivers = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.colName = New DevExpress.XtraGrid.Columns.GridColumn() Me.colName = New DevExpress.XtraGrid.Columns.GridColumn()
Me.colEmail = New DevExpress.XtraGrid.Columns.GridColumn() Me.colEmail = New DevExpress.XtraGrid.Columns.GridColumn()
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
Me.RepositoryItemEmailEdit = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit() Me.RepositoryItemEmailEdit = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
Me.EnvelopeDocumentBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
@ -73,6 +75,7 @@ Partial Public Class frmEditor
Me.SplitContainerControl1.Panel2.SuspendLayout() Me.SplitContainerControl1.Panel2.SuspendLayout()
Me.SplitContainerControl1.SuspendLayout() Me.SplitContainerControl1.SuspendLayout()
CType(Me.GridDocuments, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridDocuments, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.FrmEditorBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ViewDocuments, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ViewDocuments, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl2.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl2.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
@ -92,9 +95,10 @@ Partial Public Class frmEditor
CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.PanelControl1.SuspendLayout() Me.PanelControl1.SuspendLayout()
CType(Me.GridReceivers, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridReceivers, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.envelopeReceiverBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.EnvelopeReceiverBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ViewReceivers, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ViewReceivers, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemEmailEdit, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemEmailEdit, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.EnvelopeDocumentBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout() Me.SuspendLayout()
' '
'colFilename 'colFilename
@ -220,6 +224,10 @@ Partial Public Class frmEditor
Me.GridDocuments.TabIndex = 0 Me.GridDocuments.TabIndex = 0
Me.GridDocuments.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewDocuments}) Me.GridDocuments.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewDocuments})
' '
'FrmEditorBindingSource
'
Me.FrmEditorBindingSource.DataSource = GetType(EnvelopeGenerator.Form.frmEditor)
'
'ViewDocuments 'ViewDocuments
' '
Me.ViewDocuments.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colFilename}) Me.ViewDocuments.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colFilename})
@ -339,7 +347,7 @@ Partial Public Class frmEditor
' '
'GridReceivers 'GridReceivers
' '
Me.GridReceivers.DataSource = Me.envelopeReceiverBindingSource Me.GridReceivers.DataSource = Me.EnvelopeReceiverBindingSource
Me.GridReceivers.Dock = System.Windows.Forms.DockStyle.Fill Me.GridReceivers.Dock = System.Windows.Forms.DockStyle.Fill
Me.GridReceivers.Location = New System.Drawing.Point(12, 12) Me.GridReceivers.Location = New System.Drawing.Point(12, 12)
Me.GridReceivers.MainView = Me.ViewReceivers Me.GridReceivers.MainView = Me.ViewReceivers
@ -350,10 +358,10 @@ Partial Public Class frmEditor
Me.GridReceivers.TabIndex = 0 Me.GridReceivers.TabIndex = 0
Me.GridReceivers.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewReceivers}) Me.GridReceivers.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewReceivers})
' '
'envelopeReceiverBindingSource 'EnvelopeReceiverBindingSource
' '
Me.envelopeReceiverBindingSource.DataMember = "Receivers" Me.EnvelopeReceiverBindingSource.DataMember = "Receivers"
Me.envelopeReceiverBindingSource.DataSource = GetType(EnvelopeGenerator.Form.frmEditor) Me.EnvelopeReceiverBindingSource.DataSource = GetType(EnvelopeGenerator.Form.frmEditor)
' '
'ViewReceivers 'ViewReceivers
' '
@ -379,11 +387,6 @@ Partial Public Class frmEditor
Me.colEmail.Visible = True Me.colEmail.Visible = True
Me.colEmail.VisibleIndex = 1 Me.colEmail.VisibleIndex = 1
' '
'OpenFileDialog1
'
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
Me.OpenFileDialog1.Filter = "PDF Files|*.pdf"
'
'RepositoryItemEmailEdit 'RepositoryItemEmailEdit
' '
Me.RepositoryItemEmailEdit.AutoHeight = False Me.RepositoryItemEmailEdit.AutoHeight = False
@ -391,6 +394,16 @@ Partial Public Class frmEditor
Me.RepositoryItemEmailEdit.MaskSettings.Set("mask", "\w+@\w+\.\w+") Me.RepositoryItemEmailEdit.MaskSettings.Set("mask", "\w+@\w+\.\w+")
Me.RepositoryItemEmailEdit.Name = "RepositoryItemEmailEdit" Me.RepositoryItemEmailEdit.Name = "RepositoryItemEmailEdit"
' '
'EnvelopeDocumentBindingSource
'
Me.EnvelopeDocumentBindingSource.DataMember = "Documents"
Me.EnvelopeDocumentBindingSource.DataSource = GetType(EnvelopeGenerator.Form.frmEditor)
'
'OpenFileDialog1
'
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
Me.OpenFileDialog1.Filter = "PDF Files|*.pdf"
'
'frmEditor 'frmEditor
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@ -409,6 +422,7 @@ Partial Public Class frmEditor
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.ResumeLayout(False) Me.SplitContainerControl1.ResumeLayout(False)
CType(Me.GridDocuments, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridDocuments, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.FrmEditorBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ViewDocuments, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.ViewDocuments, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SplitContainerControl2.Panel1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerControl2.Panel1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl2.Panel1.ResumeLayout(False) Me.SplitContainerControl2.Panel1.ResumeLayout(False)
@ -428,9 +442,10 @@ Partial Public Class frmEditor
CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.PanelControl1.ResumeLayout(False) Me.PanelControl1.ResumeLayout(False)
CType(Me.GridReceivers, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridReceivers, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.envelopeReceiverBindingSource, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.EnvelopeReceiverBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ViewReceivers, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.ViewReceivers, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RepositoryItemEmailEdit, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemEmailEdit, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.EnvelopeDocumentBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False) Me.ResumeLayout(False)
Me.PerformLayout() Me.PerformLayout()
@ -464,10 +479,12 @@ Partial Public Class frmEditor
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents PanelControl1 As PanelControl Friend WithEvents PanelControl1 As PanelControl
Friend WithEvents PanelControl2 As PanelControl Friend WithEvents PanelControl2 As PanelControl
Friend WithEvents envelopeReceiverBindingSource As BindingSource Friend WithEvents EnvelopeReceiverBindingSource As BindingSource
Friend WithEvents colName As DevExpress.XtraGrid.Columns.GridColumn Friend WithEvents colName As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents colEmail As DevExpress.XtraGrid.Columns.GridColumn Friend WithEvents colEmail As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents RepositoryItemEmailEdit As Repository.RepositoryItemTextEdit Friend WithEvents RepositoryItemEmailEdit As Repository.RepositoryItemTextEdit
Friend WithEvents EnvelopeDocumentBindingSource As BindingSource
Friend WithEvents FrmEditorBindingSource As BindingSource
#End Region #End Region

View File

@ -215,9 +215,15 @@
dWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= dWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value> </value>
</data> </data>
<metadata name="envelopeReceiverBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="EnvelopeReceiverBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>159, 17</value> <value>159, 17</value>
</metadata> </metadata>
<metadata name="FrmEditorBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>622, 17</value>
</metadata>
<metadata name="EnvelopeDocumentBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>385, 17</value>
</metadata>
<metadata name="OpenFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="OpenFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>

View File

@ -1,14 +1,10 @@
Imports System.ComponentModel Imports System.ComponentModel
Imports System.Data.SqlClient Imports System.IO
Imports System.Text
Imports DevExpress.XtraGrid.Views.Tile
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Partial Public Class frmEditor Partial Public Class frmEditor
Private ReadOnly Documents As New List(Of EnvelopeFile) Public Property Documents As New BindingList(Of EnvelopeFile)
Public Property Receivers As New BindingList(Of Receiver)
Public Property Receivers As New List(Of EnvelopeReceiver)
Private Controller As EnvelopeController Private Controller As EnvelopeController
Private Logger As Logger Private Logger As Logger
@ -21,10 +17,8 @@ Partial Public Class frmEditor
Private Sub btnNewFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnNewFile.ItemClick Private Sub btnNewFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnNewFile.ItemClick
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
Documents.Add(New EnvelopeFile(OpenFileDialog1.FileName)) Dim oFileInfo = New FileInfo(OpenFileDialog1.FileName)
Documents.Add(New EnvelopeFile() With {.FileInfo = oFileInfo})
GridDocuments.DataSource = Nothing
GridDocuments.DataSource = Documents
End If End If
End Sub End Sub
@ -32,12 +26,16 @@ Partial Public Class frmEditor
Logger = State.LogConfig.GetLogger() Logger = State.LogConfig.GetLogger()
Controller = New EnvelopeController(State) Controller = New EnvelopeController(State)
GridReceivers.DataSource = envelopeReceiverBindingSource GridDocuments.DataSource = Documents
GridReceivers.DataSource = Receivers
End Sub End Sub
Private Sub btnDeleteFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDeleteFile.ItemClick Private Sub btnDeleteFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDeleteFile.ItemClick
If ViewDocuments.GetSelectedRows().Count > 0 Then If ViewDocuments.GetSelectedRows().Count > 0 Then
ViewDocuments.DeleteSelectedRows() Dim oDocument As EnvelopeFile = DirectCast(ViewDocuments.GetFocusedRow(), EnvelopeFile)
If Controller.DeleteDocument(oDocument) Then
Documents.Remove(oDocument)
End If
End If End If
End Sub End Sub
@ -45,10 +43,9 @@ Partial Public Class frmEditor
Try Try
Dim oSubject = txtSubject.EditValue?.ToString Dim oSubject = txtSubject.EditValue?.ToString
Dim oMessage = txtMessage.EditValue?.ToString Dim oMessage = txtMessage.EditValue?.ToString
Dim oReceivers As BindingList(Of EnvelopeReceiver) = envelopeReceiverBindingSource.List
Dim oEnv = New Envelope(oSubject, oMessage, State.UserId) With { Dim oEnv = New Envelope(oSubject, oMessage, State.UserId) With {
.Receivers = oReceivers.ToList, .Receivers = Receivers.ToList,
.Documents = Documents .Documents = Documents.ToList
} }
Dim oErrors = oEnv.Validate() Dim oErrors = oEnv.Validate()