diff --git a/EnvelopeGenerator.Common/Models/DocumentModel.vb b/EnvelopeGenerator.Common/Models/DocumentModel.vb
index 46324f1e..3a42949d 100644
--- a/EnvelopeGenerator.Common/Models/DocumentModel.vb
+++ b/EnvelopeGenerator.Common/Models/DocumentModel.vb
@@ -64,6 +64,19 @@ Public Class DocumentModel
End Try
End Function
+ Public Function Delete(pDocumentId As Integer, pTransaction As SqlTransaction) As Boolean
+ Try
+ Dim oSql = "DELETE FROM [dbo].[TBSIG_ENVELOPE_DOCUMENT] WHERE GUID = @GUID"
+ Dim oCommand As New SqlCommand(oSql)
+ oCommand.Parameters.Add("GUID", SqlDbType.Int).Value = pDocumentId
+
+ Return Database.ExecuteNonQuery(oCommand, pTransaction)
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+ End Try
+ End Function
+
Private Function GetDocumentId(pFilename As String, pEnvelope As Envelope, pTransaction As SqlTransaction) As Integer
Try
Return Database.GetScalarValue($"SELECT MAX(GUID) FROM TBSIG_ENVELOPE_DOCUMENT WHERE FILENAME = '{pFilename}' AND ENVELOPE_ID = {pEnvelope.Id}", pTransaction)
diff --git a/EnvelopeGenerator.Common/Models/ElementModel.vb b/EnvelopeGenerator.Common/Models/ElementModel.vb
index f4113731..521fbe32 100644
--- a/EnvelopeGenerator.Common/Models/ElementModel.vb
+++ b/EnvelopeGenerator.Common/Models/ElementModel.vb
@@ -150,4 +150,24 @@ Public Class ElementModel
Return False
End Try
End Function
+
+ Public Function DeleteElements(pReceiverId As Integer, pDocumentId As Integer, pTransaction As SqlTransaction) As Boolean
+ Try
+ Dim oSql = $"DELETE FROM TBSIG_DOCUMENT_RECEIVER_ELEMENT WHERE RECEIVER_ID = {pReceiverId} AND DOCUMENT_ID = {pDocumentId}"
+ Return Database.ExecuteNonQuery(oSql, pTransaction)
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+ End Try
+ End Function
+
+ Public Function DeleteElements(pDocumentId As Integer, pTransaction As SqlTransaction) As Boolean
+ Try
+ Dim oSql = $"DELETE FROM TBSIG_DOCUMENT_RECEIVER_ELEMENT WHERE DOCUMENT_ID = {pDocumentId}"
+ Return Database.ExecuteNonQuery(oSql, pTransaction)
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+ End Try
+ End Function
End Class
diff --git a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb
index d0c7cd2b..76827068 100644
--- a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb
+++ b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb
@@ -80,10 +80,10 @@ Public Class EnvelopeModel
End Try
End Function
- Public Function Delete(pEnvelope As Envelope) As Boolean
+ Public Function Delete(pEnvelope As Envelope, pTransaction As SqlTransaction) As Boolean
Try
Dim oSql = $"DELETE FROM [dbo].[TBSIG_ENVELOPE] WHERE GUID = {pEnvelope.Id}"
- Return Database.ExecuteNonQuery(oSql)
+ Return Database.ExecuteNonQuery(oSql, pTransaction)
Catch ex As Exception
Return False
diff --git a/EnvelopeGenerator.Common/Models/ReceiverModel.vb b/EnvelopeGenerator.Common/Models/ReceiverModel.vb
index ee90fcc7..9ccafadd 100644
--- a/EnvelopeGenerator.Common/Models/ReceiverModel.vb
+++ b/EnvelopeGenerator.Common/Models/ReceiverModel.vb
@@ -137,7 +137,12 @@ Public Class ReceiverModel
Public Function ListReceivers(pExistingReceivers As IEnumerable(Of EnvelopeReceiver)) As IEnumerable(Of EnvelopeReceiver)
Try
+ If pExistingReceivers.Count = 0 Then
+ Return New List(Of EnvelopeReceiver)
+ End If
+
Dim oAddresses = pExistingReceivers.Select(Function(r) $"'{r.Email}'").JoinToString(",")
+
Dim oSql = $"SELECT * FROM [dbo].[TBSIG_RECEIVER] WHERE EMAIL_ADDRESS IN ({oAddresses})"
Dim oTable = Database.GetDatatable(oSql)
@@ -151,10 +156,10 @@ Public Class ReceiverModel
End Try
End Function
- Public Function Delete(pReceiverId As Integer, pDocumentId As Integer) As Boolean
+ Public Function Delete(pReceiverId As Integer, pEnvelopeId As Integer, pTransaction As SqlTransaction) As Boolean
Try
- Dim oSql = $"DELETE FROM TBSIG_DOCUMENT_RECEIVER WHERE RECEIVER_ID = {pReceiverId} AND DOCUMENT_ID = {pDocumentId}"
- Return Database.ExecuteNonQuery(oSql)
+ Dim oSql = $"DELETE FROM TBSIG_ENVELOPE_RECEIVER WHERE RECEIVER_ID = {pReceiverId} AND ENVELOPE_ID = {pEnvelopeId}"
+ Return Database.ExecuteNonQuery(oSql, pTransaction)
Catch ex As Exception
Logger.Error(ex)
diff --git a/EnvelopeGenerator.Form/Controllers/BaseController.vb b/EnvelopeGenerator.Form/Controllers/BaseController.vb
new file mode 100644
index 00000000..e409f6e8
--- /dev/null
+++ b/EnvelopeGenerator.Form/Controllers/BaseController.vb
@@ -0,0 +1,101 @@
+Imports DigitalData.Modules.Database
+Imports DigitalData.Modules.Base
+Imports EnvelopeGenerator.Common
+Imports System.Data.SqlClient
+
+Public MustInherit Class BaseController
+ Inherits BaseClass
+
+ Public EnvelopeModel As EnvelopeModel
+ Public DocumentModel As DocumentModel
+ Public ReceiverModel As ReceiverModel
+ Public ElementModel As ElementModel
+ Public HistoryModel As HistoryModel
+ Public UserModel As UserModel
+
+ Public ReadOnly Property Database As MSSQLServer
+ Public ReadOnly Property State As State
+
+ Public Sub New(pState As State)
+ MyBase.New(pState.LogConfig)
+ State = pState
+ Database = pState.Database
+ InitializeModels(pState)
+ End Sub
+
+ Private Sub InitializeModels(pState As State)
+ EnvelopeModel = New EnvelopeModel(pState)
+ DocumentModel = New DocumentModel(pState)
+ ReceiverModel = New ReceiverModel(pState)
+ ElementModel = New ElementModel(pState)
+ HistoryModel = New HistoryModel(pState)
+ UserModel = New UserModel(pState)
+ End Sub
+
+ Public Function DeleteEnvelope(pEnvelope As Envelope) As Boolean
+ Dim oConnection As SqlConnection = Database.GetConnection()
+ Dim oTransaction As SqlTransaction = oConnection.BeginTransaction()
+
+ Try
+ Dim oResult = pEnvelope.Documents.
+ Select(Function(d) DeleteDocument(d, oTransaction)).
+ All(Function(r) r = True)
+
+ If oResult = False Then
+ Throw New ApplicationException("could not delete documents")
+ End If
+
+ Dim oResult2 = pEnvelope.Receivers.
+ Select(Function(r) ReceiverModel.Delete(r.Id, pEnvelope.Id, oTransaction)).
+ All(Function(r) r = True)
+
+ If oResult2 = False Then
+ Throw New ApplicationException("could not delete receivers")
+ End If
+
+ Dim oResult3 = EnvelopeModel.Delete(pEnvelope, oTransaction)
+
+ If oResult3 = False Then
+ Throw New ApplicationException("could not delete envelope")
+ End If
+
+ oTransaction.Commit()
+ Return True
+
+ Catch ex As Exception
+ Logger.Error(ex)
+ oTransaction.Rollback()
+ Return False
+
+ End Try
+ End Function
+
+ Public Function DeleteDocument(pDocument As EnvelopeDocument, pTransaction As SqlTransaction) As Boolean
+ Try
+
+ If DocumentModel.Delete(pDocument.Id, pTransaction) = True Then
+ Dim oResult = ElementModel.DeleteElements(pDocument.Id, pTransaction)
+
+ If oResult = False Then
+ Throw New ApplicationException("Could not delete elements!")
+ End If
+ Else
+ Throw New ApplicationException("Could not delete document!")
+ End If
+
+ Catch ex As Exception
+ Logger.Error(ex)
+
+ Return False
+ End Try
+
+ Try
+ IO.File.Delete(pDocument.Filepath)
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+ End Try
+
+ Return True
+ End Function
+End Class
diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb
index a82be8bc..1f4b1dec 100644
--- a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb
+++ b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb
@@ -1,60 +1,28 @@
-Imports System.Data.Common
-Imports System.Data.SqlClient
+Imports System.Data.SqlClient
Imports System.IO
-Imports DigitalData.Modules.Base
-Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common
Imports EnvelopeGenerator.Common.Constants
Public Class EnvelopeEditorController
- Inherits BaseClass
-
- Private ReadOnly Database As MSSQLServer
- Private ReadOnly State As State = Nothing
-
- Private EnvelopeModel As EnvelopeModel
- Private DocumentModel As DocumentModel
- Private ReceiverModel As ReceiverModel
- Private ElementModel As ElementModel
- Private HistoryModel As HistoryModel
- Private UserModel As UserModel
+ Inherits BaseController
Public ReadOnly Envelope As Envelope = Nothing
Public Sub New(pState As State)
- MyBase.New(pState.LogConfig)
-
- Database = pState.Database
- State = pState
-
- InitializeModels(pState)
+ MyBase.New(pState)
Envelope = CreateEnvelope()
End Sub
Public Sub New(pState As State, pEnvelope As Envelope)
- MyBase.New(pState.LogConfig)
-
- Database = pState.Database
- State = pState
-
- InitializeModels(pState)
+ MyBase.New(pState)
Envelope = pEnvelope
Envelope.Documents = DocumentModel.List(pEnvelope.Id)
Envelope.Receivers = ReceiverModel.ListEnvelopeReceivers(pEnvelope.Id)
End Sub
- Private Sub InitializeModels(pState As State)
- EnvelopeModel = New EnvelopeModel(pState)
- DocumentModel = New DocumentModel(pState)
- ReceiverModel = New ReceiverModel(pState)
- ElementModel = New ElementModel(pState)
- HistoryModel = New HistoryModel(pState)
- UserModel = New UserModel(pState)
- End Sub
-
#Region "Public"
Public Function CreateEnvelope() As Envelope
Dim oEnvelope As New Envelope() With {
@@ -114,9 +82,7 @@ Public Class EnvelopeEditorController
Public Function CleanupEnvelope() As Boolean
If Envelope.Status = Common.Constants.EnvelopeStatus.Created Then
- 'TODO: Delete Documents and Receivers and elements
- Return EnvelopeModel.Delete(Envelope)
-
+ Return DeleteEnvelope(Envelope)
Else
Return True
End If
@@ -141,14 +107,17 @@ Public Class EnvelopeEditorController
End Try
End Function
- Public Function DeleteDocument(pDocument As EnvelopeDocument) As Boolean
- 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
- 'TODO: delete document file, from temp and from documentpath
+ Public Overloads Function DeleteDocument(pDocument As EnvelopeDocument) As Boolean
+ Dim oConnection As SqlConnection = Database.GetConnection
+ Dim oTransaction As SqlTransaction = oConnection.BeginTransaction
- Return Database.ExecuteNonQuery(oCommand)
+ If DeleteDocument(pDocument, oTransaction) = True Then
+ oTransaction.Commit()
+ Return True
+ Else
+ oTransaction.Rollback()
+ Return False
+ End If
End Function
Public Function SaveEnvelopeDocumentsToFilesystem(pEnvelope As Envelope) As Boolean
@@ -206,28 +175,21 @@ Public Class EnvelopeEditorController
End Try
End Function
- Public Function CreateEnvelopeReceivers(pReceivers As List(Of EnvelopeReceiver)) As Boolean
- Dim oExistingReceivers As List(Of EnvelopeReceiver) = ReceiverModel.ListReceivers(pReceivers)
+ Public Function CreateEnvelopeReceivers(pCurrentReceivers As List(Of EnvelopeReceiver)) As Boolean
+ Dim oExistingReceivers As List(Of EnvelopeReceiver) = ReceiverModel.ListReceivers(pCurrentReceivers)
Dim oExistingAddresses = oExistingReceivers.Select(Function(r) r.Email)
- Dim oNewReceivers = pReceivers.
+ Dim oNewReceivers = pCurrentReceivers.
Where(Function(r) Not oExistingAddresses.Contains(r.Email)).ToList()
- Dim oOldReceivers = pReceivers.
- Where(Function(r) oExistingAddresses.Contains(r.Email)).ToList()
-
- For Each oReceiver In oOldReceivers
- oReceiver.Id = oExistingReceivers.
- Where(Function(r) r.Email = oReceiver.Email).
- Select(Function(r) r.Id).
- FirstOrDefault()
+ For Each oReceiver In oNewReceivers
+ oReceiver.Id = 0
Next
Dim oConnection = Database.GetConnection()
Dim oTransaction = oConnection.BeginTransaction()
Try
-
If InsertReceivers(oNewReceivers, oTransaction) = False Then
Throw New ApplicationException("Could not insert receivers!")
End If
@@ -261,16 +223,35 @@ Public Class EnvelopeEditorController
End Try
End Function
- Private Function DeleteReceiver(pReceiver As EnvelopeReceiver) As Boolean
+ Public Function DeleteReceiver(pReceiver As EnvelopeReceiver) As Boolean
+ Dim oConnection As SqlConnection = Database.GetConnection()
+ Dim oTransaction As SqlTransaction = oConnection.BeginTransaction()
+
Try
+ If ReceiverModel.Delete(pReceiver.Id, Envelope.Id, oTransaction) = True Then
+ Dim oResult = Envelope.Documents.
+ Select(Function(d) ElementModel.DeleteElements(pReceiver.Id, d.Id, oTransaction)).
+ All(Function(pResult) pResult = True)
+
+ If oResult = False Then
+ Throw New ApplicationException("Could not delete elements!")
+ End If
+ Else
+ Throw New ApplicationException("Could not delete receiver!")
+ End If
+
+ oTransaction.Commit()
+ Return True
Catch ex As Exception
-
+ Logger.Error(ex)
+ oTransaction.Rollback()
+ Return False
End Try
End Function
- Public Function ElementsExist(pDocumentId As Integer, pReceiverId As Integer) As Boolean
- Return ElementModel.ElementsExist(pDocumentId, pReceiverId)
+ Public Function ElementsExist(pReceiverId As Integer) As Boolean
+ Return ElementModel.ElementsExist(Envelope.Id, pReceiverId)
End Function
Private Function InsertReceivers(pReceivers As List(Of EnvelopeReceiver), pTransaction As SqlTransaction) As Boolean
diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeListController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeListController.vb
index f6c57dd9..2181ed5b 100644
--- a/EnvelopeGenerator.Form/Controllers/EnvelopeListController.vb
+++ b/EnvelopeGenerator.Form/Controllers/EnvelopeListController.vb
@@ -1,22 +1,18 @@
-Imports DigitalData.Modules.Base
-Imports DigitalData.Modules.Database
-Imports EnvelopeGenerator.Common
+Imports EnvelopeGenerator.Common
Public Class EnvelopeListController
- Inherits BaseClass
- Private ReadOnly Database As MSSQLServer
- Private ReadOnly State As State
- Private ReadOnly EnvelopeModel As EnvelopeModel
+ Inherits BaseController
Public Sub New(pState As State)
- MyBase.New(pState.LogConfig)
- Database = pState.Database
- State = pState
- EnvelopeModel = New EnvelopeModel(pState)
+ MyBase.New(pState)
End Sub
Public Function ListEnvelopes() As IEnumerable(Of Envelope)
Return EnvelopeModel.List()
End Function
+ Public Overloads Function DeleteEnvelope(pEnvelope As Envelope) As Boolean
+ Return MyBase.DeleteEnvelope(pEnvelope)
+ End Function
+
End Class
diff --git a/EnvelopeGenerator.Form/Controllers/FieldEditorController.vb b/EnvelopeGenerator.Form/Controllers/FieldEditorController.vb
index 77c081db..8dd59318 100644
--- a/EnvelopeGenerator.Form/Controllers/FieldEditorController.vb
+++ b/EnvelopeGenerator.Form/Controllers/FieldEditorController.vb
@@ -1,14 +1,9 @@
-Imports DigitalData.Modules.Base
-Imports DigitalData.Modules.Database
-Imports EnvelopeGenerator.Common
+Imports EnvelopeGenerator.Common
Imports GdPicture14.Annotations
Public Class FieldEditorController
- Inherits BaseClass
+ Inherits BaseController
- Private ReadOnly ElementModel As ElementModel
-
- Private ReadOnly Database As MSSQLServer
Private ReadOnly Document As EnvelopeDocument
Public Property Elements As New List(Of EnvelopeDocumentElement)
@@ -19,8 +14,7 @@ Public Class FieldEditorController
End Class
Public Sub New(pState As State, pDocument As EnvelopeDocument)
- MyBase.New(pState.LogConfig)
- Database = pState.Database
+ MyBase.New(pState)
Document = pDocument
ElementModel = New ElementModel(pState)
diff --git a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj
index d98466f1..dd8a2ffe 100644
--- a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj
+++ b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj
@@ -105,6 +105,7 @@
+
Form
diff --git a/EnvelopeGenerator.Form/My Project/licenses.licx b/EnvelopeGenerator.Form/My Project/licenses.licx
index 5af8c78d..3d8067d5 100644
--- a/EnvelopeGenerator.Form/My Project/licenses.licx
+++ b/EnvelopeGenerator.Form/My Project/licenses.licx
@@ -1,9 +1,10 @@
-DevExpress.XtraEditors.SearchLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.SearchLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb
index 75eac0d7..93845f19 100644
--- a/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb
+++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb
@@ -29,10 +29,11 @@ Partial Public Class frmEnvelopeEditor
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmEnvelopeEditor))
- Dim TableColumnDefinition2 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
- Dim TableRowDefinition3 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
- Dim TableRowDefinition4 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
- Dim TileViewItemElement2 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
+ Dim TableColumnDefinition1 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
+ Dim TableRowDefinition1 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
+ Dim TableRowDefinition2 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
+ Dim TileViewItemElement1 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
+ Dim SplashScreenManager1 As DevExpress.XtraSplashScreen.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, Nothing, True, True)
Me.colFilename = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.btnSave = New DevExpress.XtraBars.BarButtonItem()
@@ -41,11 +42,13 @@ Partial Public Class frmEnvelopeEditor
Me.btnDeleteFile = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
Me.btnEditFields = New DevExpress.XtraBars.BarButtonItem()
+ Me.btnDeleteReceiver = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
+ Me.RibbonPageGroup5 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
Me.GridDocuments = New DevExpress.XtraGrid.GridControl()
Me.ViewDocuments = New DevExpress.XtraGrid.Views.Tile.TileView()
@@ -67,8 +70,6 @@ Partial Public Class frmEnvelopeEditor
Me.FrmEditorBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.EnvelopeDocumentBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
- Me.RibbonPageGroup5 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
- Me.btnDeleteReceiver = New DevExpress.XtraBars.BarButtonItem()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -163,6 +164,12 @@ Partial Public Class frmEnvelopeEditor
Me.btnEditFields.ImageOptions.SvgImage = CType(resources.GetObject("btnEditFields.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.btnEditFields.Name = "btnEditFields"
'
+ 'btnDeleteReceiver
+ '
+ Me.btnDeleteReceiver.Caption = "Empfänger löschen"
+ Me.btnDeleteReceiver.Id = 8
+ Me.btnDeleteReceiver.Name = "btnDeleteReceiver"
+ '
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3, Me.RibbonPageGroup4, Me.RibbonPageGroup5})
@@ -196,6 +203,12 @@ Partial Public Class frmEnvelopeEditor
Me.RibbonPageGroup4.Name = "RibbonPageGroup4"
Me.RibbonPageGroup4.Text = "RibbonPageGroup4"
'
+ 'RibbonPageGroup5
+ '
+ Me.RibbonPageGroup5.ItemLinks.Add(Me.btnDeleteReceiver)
+ Me.RibbonPageGroup5.Name = "RibbonPageGroup5"
+ Me.RibbonPageGroup5.Text = "RibbonPageGroup5"
+ '
'SplitContainerControl1
'
Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill
@@ -233,18 +246,18 @@ Partial Public Class frmEnvelopeEditor
Me.ViewDocuments.GridControl = Me.GridDocuments
Me.ViewDocuments.Name = "ViewDocuments"
Me.ViewDocuments.OptionsTiles.ItemSize = New System.Drawing.Size(248, 202)
- Me.ViewDocuments.TileColumns.Add(TableColumnDefinition2)
- TableRowDefinition3.Length.Value = 152.0R
- TableRowDefinition4.Length.Value = 34.0R
- Me.ViewDocuments.TileRows.Add(TableRowDefinition3)
- Me.ViewDocuments.TileRows.Add(TableRowDefinition4)
- TileViewItemElement2.Column = Me.colFilename
- TileViewItemElement2.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
- TileViewItemElement2.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze
- TileViewItemElement2.RowIndex = 1
- TileViewItemElement2.Text = "colFilename"
- TileViewItemElement2.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
- Me.ViewDocuments.TileTemplate.Add(TileViewItemElement2)
+ Me.ViewDocuments.TileColumns.Add(TableColumnDefinition1)
+ TableRowDefinition1.Length.Value = 152.0R
+ TableRowDefinition2.Length.Value = 34.0R
+ Me.ViewDocuments.TileRows.Add(TableRowDefinition1)
+ Me.ViewDocuments.TileRows.Add(TableRowDefinition2)
+ TileViewItemElement1.Column = Me.colFilename
+ TileViewItemElement1.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
+ TileViewItemElement1.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze
+ TileViewItemElement1.RowIndex = 1
+ TileViewItemElement1.Text = "colFilename"
+ TileViewItemElement1.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
+ Me.ViewDocuments.TileTemplate.Add(TileViewItemElement1)
'
'SplitContainerControl2
'
@@ -405,17 +418,9 @@ Partial Public Class frmEnvelopeEditor
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
Me.OpenFileDialog1.Filter = "PDF Files|*.pdf"
'
- 'RibbonPageGroup5
+ 'SplashScreenManager1
'
- Me.RibbonPageGroup5.ItemLinks.Add(Me.btnDeleteReceiver)
- Me.RibbonPageGroup5.Name = "RibbonPageGroup5"
- Me.RibbonPageGroup5.Text = "RibbonPageGroup5"
- '
- 'btnDeleteReceiver
- '
- Me.btnDeleteReceiver.Caption = "Empfänger löschen"
- Me.btnDeleteReceiver.Id = 8
- Me.btnDeleteReceiver.Name = "btnDeleteReceiver"
+ SplashScreenManager1.ClosingDelay = 500
'
'frmEnvelopeEditor
'
diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb
index 274ae393..96b7af67 100644
--- a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb
+++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb
@@ -1,4 +1,6 @@
Imports System.ComponentModel
+Imports System.Threading.Tasks
+Imports DevExpress.XtraSplashScreen
Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common
@@ -69,23 +71,30 @@ Partial Public Class frmEnvelopeEditor
End Sub
Private Sub btnEditFields_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnEditFields.ItemClick
- If ViewDocuments.GetSelectedRows().Count > 0 Then
- Dim oDocument As EnvelopeDocument = DirectCast(ViewDocuments.GetFocusedRow(), EnvelopeDocument)
- Dim oGDPictureKey As String = "21182889975216572111813147150675976632"
+ Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
+ Try
+ If ViewDocuments.GetSelectedRows().Count > 0 Then
+ Dim oDocument As EnvelopeDocument = DirectCast(ViewDocuments.GetFocusedRow(), EnvelopeDocument)
+ Dim oGDPictureKey As String = "21182889975216572111813147150675976632"
- If SaveEnvelope() Then
- Dim oForm As New frmFieldEditor() With {
- .Document = Controller.Envelope.Documents.
- Where(Function(d) d.Filename = oDocument.Filename).
- SingleOrDefault(),
- .GDPictureKey = oGDPictureKey,
- .Receivers = Receivers.ToList,
- .State = State
- }
- oForm.ShowDialog()
+ If SaveEnvelope() Then
+ Dim oForm As New frmFieldEditor() With {
+ .Document = Controller.Envelope.Documents.
+ Where(Function(d) d.Filename = oDocument.Filename).
+ SingleOrDefault(),
+ .GDPictureKey = oGDPictureKey,
+ .Receivers = Receivers.ToList,
+ .State = State
+ }
+ oForm.Show()
+ End If
End If
- End If
+ Catch ex As Exception
+ Logger.Error(ex)
+ Finally
+ SplashScreenManager.CloseOverlayForm(oHandle)
+ End Try
End Sub
Private Function SaveEnvelope() As Boolean
@@ -95,16 +104,10 @@ Partial Public Class frmEnvelopeEditor
' Ensure all receivers are saved
ViewReceivers.CloseEditor()
- Dim oReceivers = Receivers.ToList
- If Controller.CreateEnvelopeReceivers(Receivers.ToList) = False Then
- MsgBox("Fehler beim Speichern der Empfänger!", MsgBoxStyle.Critical, Text)
- Return False
- End If
-
Dim oEnvelope = Controller.Envelope
oEnvelope.Subject = oSubject
oEnvelope.Message = oMessage
- oEnvelope.Receivers = oReceivers
+ oEnvelope.Receivers = Receivers.ToList
oEnvelope.Documents = Documents.ToList
Dim oErrors = oEnvelope.Validate()
@@ -112,7 +115,14 @@ Partial Public Class frmEnvelopeEditor
Dim oError = "Fehler beim Speichern des Umschlags:" & vbNewLine & vbNewLine & String.Join(vbNewLine, oErrors)
MsgBox(oError, MsgBoxStyle.Exclamation, Text)
Return False
- ElseIf Controller.SaveEnvelope(oEnvelope) = False Then
+ End If
+
+ If Controller.CreateEnvelopeReceivers(oEnvelope.Receivers) = False Then
+ MsgBox("Fehler beim Speichern der Empfänger!", MsgBoxStyle.Critical, Text)
+ Return False
+ End If
+
+ If Controller.SaveEnvelope(oEnvelope) = False Then
MsgBox("Fehler beim Speichern des Umschlags!", MsgBoxStyle.Critical, Text)
Return False
Else
@@ -120,22 +130,31 @@ Partial Public Class frmEnvelopeEditor
End If
End Function
- Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
-
- End Sub
-
Private Sub btnDeleteReceiver_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDeleteReceiver.ItemClick
If ViewReceivers.SelectedRowsCount = 0 Then
Exit Sub
End If
- ' TODO: Delete receivers for ALL documents
+ Dim oReceiver As EnvelopeReceiver = ViewReceivers.GetFocusedRow()
+
+ If oReceiver Is Nothing Then
+ Exit Sub
+ End If
- Dim oMessage2 = "Es gibt für diesen Empfänger bereits Elemente. Wollen Sie den Empfänger trotzdem löschen?"
Dim oMessage = "Wollen Sie den ausgewählten Empfänger löschen?"
+ If Controller.ElementsExist(oReceiver.Id) Then
+ oMessage = "Es gibt für diesen Empfänger bereits Elemente. Wollen Sie den Empfänger trotzdem löschen?"
+ End If
+
If MsgBox(oMessage, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.No Then
Exit Sub
End If
+ If Controller.DeleteReceiver(oReceiver) Then
+ Receivers.Remove(oReceiver)
+ Else
+ MsgBox("Empfänger konnte nicht entfernt werden.", MsgBoxStyle.Critical, Text)
+ End If
+
End Sub
End Class
diff --git a/EnvelopeGenerator.Form/frmMain.Designer.vb b/EnvelopeGenerator.Form/frmMain.Designer.vb
index 0f17a88f..fe90e9c1 100644
--- a/EnvelopeGenerator.Form/frmMain.Designer.vb
+++ b/EnvelopeGenerator.Form/frmMain.Designer.vb
@@ -1,9 +1,9 @@
- _
+
Partial Class frmMain
Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Form overrides dispose to clean up the component list.
- _
+
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
@@ -17,12 +17,14 @@ Partial Class frmMain
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
- _
+
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
+ Dim SplashScreenManager1 As DevExpress.XtraSplashScreen.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, Nothing, True, True)
Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.btnCreateEnvelope = New DevExpress.XtraBars.BarButtonItem()
Me.btnEditEnvelope = New DevExpress.XtraBars.BarButtonItem()
+ Me.btnDeleteEnvelope = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
@@ -36,9 +38,9 @@ Partial Class frmMain
'RibbonControl
'
Me.RibbonControl.ExpandCollapseItem.Id = 0
- Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope})
+ Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope})
Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
- Me.RibbonControl.MaxItemId = 3
+ Me.RibbonControl.MaxItemId = 5
Me.RibbonControl.Name = "RibbonControl"
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl.Size = New System.Drawing.Size(1088, 158)
@@ -58,6 +60,13 @@ Partial Class frmMain
Me.btnEditEnvelope.ImageOptions.SvgImage = CType(resources.GetObject("btnEditEnvelope.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.btnEditEnvelope.Name = "btnEditEnvelope"
'
+ 'btnDeleteEnvelope
+ '
+ Me.btnDeleteEnvelope.Caption = "Umschlag löschen"
+ Me.btnDeleteEnvelope.Id = 4
+ Me.btnDeleteEnvelope.ImageOptions.SvgImage = CType(resources.GetObject("btnDeleteEnvelope.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
+ Me.btnDeleteEnvelope.Name = "btnDeleteEnvelope"
+ '
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1})
@@ -68,6 +77,7 @@ Partial Class frmMain
'
Me.RibbonPageGroup1.ItemLinks.Add(Me.btnCreateEnvelope)
Me.RibbonPageGroup1.ItemLinks.Add(Me.btnEditEnvelope)
+ Me.RibbonPageGroup1.ItemLinks.Add(Me.btnDeleteEnvelope)
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
Me.RibbonPageGroup1.Text = "RibbonPageGroup1"
'
@@ -94,6 +104,10 @@ Partial Class frmMain
Me.ViewEnvelopes.GridControl = Me.GridEnvelopes
Me.ViewEnvelopes.Name = "ViewEnvelopes"
'
+ 'SplashScreenManager1
+ '
+ SplashScreenManager1.ClosingDelay = 500
+ '
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -122,4 +136,5 @@ Partial Class frmMain
Friend WithEvents GridEnvelopes As DevExpress.XtraGrid.GridControl
Friend WithEvents ViewEnvelopes As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents btnEditEnvelope As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents btnDeleteEnvelope As DevExpress.XtraBars.BarButtonItem
End Class
diff --git a/EnvelopeGenerator.Form/frmMain.resx b/EnvelopeGenerator.Form/frmMain.resx
index acb42b89..94f8fcbb 100644
--- a/EnvelopeGenerator.Form/frmMain.resx
+++ b/EnvelopeGenerator.Form/frmMain.resx
@@ -153,6 +153,25 @@
LDRMNCwxMnYxNWMwLDAuNSwwLjUsMSwxLDFoMjJjMC41LDAsMS0wLjUsMS0xVjEyTDE2LDR6IE0yNiwx
My4xbC0xMCw2LjdMNiwxMy4xdjBsMTAtNi43TDI2LDEzLjEgICBMMjYsMTMuMXoiIGNsYXNzPSJZZWxs
b3ciIC8+DQogIDwvZz4NCjwvc3ZnPgs=
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
+ LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+ dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKoCAAAC77u/
+ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+ IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+ MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+ Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+ MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
+ ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
+ OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
+ dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlRyYXNoIj4NCiAgICA8cGF0aCBkPSJNOCwyN2MwLDAu
+ NSwwLjUsMSwxLDFoMTRjMC41LDAsMS0wLjUsMS0xVjEySDhWMjd6IiBjbGFzcz0iQmxhY2siIC8+DQog
+ ICAgPHBhdGggZD0iTTI1LDZoLTdWNWMwLTAuNS0wLjUtMS0xLTFoLTJjLTAuNSwwLTEsMC41LTEsMXYx
+ SDdDNi41LDYsNiw2LjUsNiw3djNoMjBWN0MyNiw2LjUsMjUuNSw2LDI1LDZ6IiBjbGFzcz0iQmxhY2si
+ IC8+DQogIDwvZz4NCjwvc3ZnPgs=
\ No newline at end of file
diff --git a/EnvelopeGenerator.Form/frmMain.vb b/EnvelopeGenerator.Form/frmMain.vb
index cb17e011..a73510c6 100644
--- a/EnvelopeGenerator.Form/frmMain.vb
+++ b/EnvelopeGenerator.Form/frmMain.vb
@@ -5,6 +5,7 @@ Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Base
Imports DigitalData.GUIs.Common
Imports EnvelopeGenerator.Common
+Imports DevExpress.XtraSplashScreen
Public Class frmMain
Private LogConfig As LogConfig
@@ -74,8 +75,16 @@ Public Class frmMain
End Function
Private Sub btnCreateEnvelope_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnCreateEnvelope.ItemClick
- Dim oForm As New frmEnvelopeEditor() With {.State = State}
- oForm.ShowDialog()
+ Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
+ Try
+ Dim oForm As New frmEnvelopeEditor() With {.State = State}
+ oForm.ShowDialog()
+ GridEnvelopes.DataSource = Controller.ListEnvelopes()
+ Catch ex As Exception
+ Logger.Error(ex)
+ Finally
+ SplashScreenManager.CloseOverlayForm(oHandle)
+ End Try
End Sub
Private Sub btnEditEnvelope_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnEditEnvelope.ItemClick
@@ -92,6 +101,20 @@ Public Class frmMain
GridEnvelopes.DataSource = Controller.ListEnvelopes()
End Sub
+ Private Sub DeleteEnvelope(pRowHandle As Integer)
+ Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(pRowHandle)
+
+ If MsgBox("Wollen Sie diesen Umschlag wirklich löschen?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.No Then
+ Exit Sub
+ End If
+
+ If Controller.DeleteEnvelope(oEnvelope) Then
+ GridEnvelopes.DataSource = Controller.ListEnvelopes()
+ Else
+ MsgBox("Umschlag konnte nicht gelöscht werden!", MsgBoxStyle.Critical, Text)
+ End If
+ End Sub
+
Private Sub ViewEnvelopes_DoubleClick(sender As Object, e As EventArgs) Handles ViewEnvelopes.DoubleClick
Dim oSelectedRows = ViewEnvelopes.GetSelectedRows()
If oSelectedRows.Count > 0 Then
@@ -99,4 +122,10 @@ Public Class frmMain
End If
End Sub
+ Private Sub btnDeleteEnvelope_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDeleteEnvelope.ItemClick
+ Dim oSelectedRows = ViewEnvelopes.GetSelectedRows()
+ If oSelectedRows.Count > 0 Then
+ DeleteEnvelope(oSelectedRows.First)
+ End If
+ End Sub
End Class
\ No newline at end of file