This commit is contained in:
Jonathan Jenne
2023-08-23 12:42:03 +02:00
parent b312396bb5
commit 3ecd9ecb27
44 changed files with 1549 additions and 56 deletions

View File

@@ -3,6 +3,7 @@ Imports System.IO
Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common
Imports EnvelopeGenerator.Common.Constants
Imports EnvelopeGenerator.Common.My
Public Class EnvelopeEditorController
Inherits BaseController
@@ -24,6 +25,27 @@ Public Class EnvelopeEditorController
End Sub
#Region "Public"
Public Function SendEnvelope() As Boolean
If EnvelopeModel.Send(Envelope) Then
'TODO: Send email
Return True
Else
Return False
End If
End Function
Public Function ValidateEnvelopeForSending() As List(Of String)
Dim oEnvelopeErrors = Envelope.Validate()
If ElementModel.ElementsExist(Envelope.Id) = False Then
oEnvelopeErrors.Add(Resources.Envelope.Missing_Elements)
End If
Return oEnvelopeErrors
End Function
Public Function CreateEnvelope() As Envelope
Dim oEnvelope As New Envelope() With {
.UserId = State.UserId,
@@ -45,26 +67,26 @@ Public Class EnvelopeEditorController
End If
End Function
Public Function SaveEnvelope(pEnvelope As Envelope) As Boolean
Public Function SaveEnvelope() As Boolean
Dim oConnection = Database.GetConnection()
Dim oTransaction = oConnection.BeginTransaction(IsolationLevel.ReadUncommitted)
Try
pEnvelope.Status = EnvelopeStatus.Saved
Envelope.Status = EnvelopeStatus.Saved
If SaveEnvelopeDocumentsToFilesystem(pEnvelope) = False Then
If SaveEnvelopeDocumentsToFilesystem(Envelope) = False Then
Throw New ApplicationException
End If
If EnvelopeModel.Update(pEnvelope, oTransaction) = False Then
If EnvelopeModel.Update(Envelope, oTransaction) = False Then
Throw New ApplicationException
End If
If SaveEnvelopeReceivers(pEnvelope, oTransaction) = False Then
If SaveEnvelopeReceivers(Envelope, oTransaction) = False Then
Throw New ApplicationException
End If
If SaveEnvelopeDocuments(pEnvelope, oTransaction) = False Then
If SaveEnvelopeDocuments(Envelope, oTransaction) = False Then
Throw New ApplicationException
End If

View File

@@ -28,19 +28,19 @@ Partial Public Class frmEnvelopeEditor
''' </summary>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmEnvelopeEditor))
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)
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()
Me.colFilename = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.btnSave = New DevExpress.XtraBars.BarButtonItem()
Me.btnCancel = New DevExpress.XtraBars.BarButtonItem()
Me.btnNewFile = New DevExpress.XtraBars.BarButtonItem()
Me.btnDeleteFile = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
Me.btnSendEnvelope = New DevExpress.XtraBars.BarButtonItem()
Me.btnEditFields = New DevExpress.XtraBars.BarButtonItem()
Me.btnDeleteReceiver = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
@@ -104,6 +104,10 @@ Partial Public Class frmEnvelopeEditor
CType(Me.EnvelopeDocumentBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'SplashScreenManager1
'
SplashScreenManager1.ClosingDelay = 500
'
'colFilename
'
Me.colFilename.Caption = "Dateiname"
@@ -115,7 +119,7 @@ Partial Public Class frmEnvelopeEditor
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.btnSave, Me.btnCancel, Me.btnNewFile, Me.btnDeleteFile, Me.BarButtonItem1, Me.btnEditFields, Me.btnDeleteReceiver})
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.btnSave, Me.btnCancel, Me.btnNewFile, Me.btnDeleteFile, Me.btnSendEnvelope, Me.btnEditFields, Me.btnDeleteReceiver})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl1.MaxItemId = 9
Me.RibbonControl1.Name = "RibbonControl1"
@@ -150,12 +154,12 @@ Partial Public Class frmEnvelopeEditor
Me.btnDeleteFile.ImageOptions.SvgImage = CType(resources.GetObject("btnDeleteFile.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.btnDeleteFile.Name = "btnDeleteFile"
'
'BarButtonItem1
'btnSendEnvelope
'
Me.BarButtonItem1.Caption = "Send Envelope"
Me.BarButtonItem1.Id = 6
Me.BarButtonItem1.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItem1.Name = "BarButtonItem1"
Me.btnSendEnvelope.Caption = "Send Envelope"
Me.btnSendEnvelope.Id = 6
Me.btnSendEnvelope.ImageOptions.SvgImage = CType(resources.GetObject("btnSendEnvelope.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.btnSendEnvelope.Name = "btnSendEnvelope"
'
'btnEditFields
'
@@ -193,7 +197,7 @@ Partial Public Class frmEnvelopeEditor
'RibbonPageGroup3
'
Me.RibbonPageGroup3.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem1)
Me.RibbonPageGroup3.ItemLinks.Add(Me.btnSendEnvelope)
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
Me.RibbonPageGroup3.Text = "RibbonPageGroup3"
'
@@ -246,18 +250,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(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)
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)
'
'SplitContainerControl2
'
@@ -418,10 +422,6 @@ Partial Public Class frmEnvelopeEditor
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
Me.OpenFileDialog1.Filter = "PDF Files|*.pdf"
'
'SplashScreenManager1
'
SplashScreenManager1.ClosingDelay = 500
'
'frmEnvelopeEditor
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -491,7 +491,7 @@ Partial Public Class frmEnvelopeEditor
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents btnDeleteFile As DevExpress.XtraBars.BarButtonItem
Friend WithEvents OpenFileDialog1 As OpenFileDialog
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents btnSendEnvelope As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents btnEditFields As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup

View File

@@ -198,7 +198,7 @@
Y2xhc3M9IlJlZCIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
</value>
</data>
<data name="BarButtonItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="btnSendEnvelope.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@@ -234,15 +234,15 @@
</value>
</data>
<metadata name="EnvelopeReceiverBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>159, 17</value>
<value>338, 17</value>
</metadata>
<metadata name="FrmEditorBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>622, 17</value>
<value>801, 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>
<value>564, 17</value>
</metadata>
<metadata name="OpenFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
<value>196, 17</value>
</metadata>
</root>

View File

@@ -1,5 +1,6 @@
Imports System.ComponentModel
Imports System.Threading.Tasks
Imports DevExpress.XtraBars.Docking
Imports DevExpress.XtraSplashScreen
Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common
@@ -41,12 +42,28 @@ Partial Public Class frmEnvelopeEditor
Receivers = New BindingList(Of EnvelopeReceiver)(Controller.Envelope.Receivers)
txtMessage.EditValue = Controller.Envelope.Message
txtSubject.EditValue = Controller.Envelope.Subject
If Envelope.Status = Constants.EnvelopeStatus.Sent Then
SetFormReadonly()
End If
End If
GridDocuments.DataSource = Documents
GridReceivers.DataSource = Receivers
End Sub
Private Sub SetFormReadonly()
RibbonPageGroup1.Enabled = False
RibbonPageGroup2.Enabled = False
RibbonPageGroup3.Enabled = False
RibbonPageGroup5.Enabled = False
btnEditFields.Enabled = False
txtSubject.Properties.ReadOnly = True
txtMessage.Properties.ReadOnly = True
ViewReceivers.OptionsBehavior.ReadOnly = True
ViewDocuments.OptionsBehavior.ReadOnly = True
End Sub
Private Sub frmEnvelopeEditor_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Controller.CleanupEnvelope()
End Sub
@@ -87,7 +104,7 @@ Partial Public Class frmEnvelopeEditor
.Receivers = Receivers.ToList,
.State = State
}
oForm.Show()
oForm.ShowDialog()
End If
End If
Catch ex As Exception
@@ -112,8 +129,7 @@ Partial Public Class frmEnvelopeEditor
Dim oErrors = oEnvelope.Validate()
If oErrors.Any Then
Dim oError = "Fehler beim Speichern des Umschlags:" & vbNewLine & vbNewLine & String.Join(vbNewLine, oErrors)
MsgBox(oError, MsgBoxStyle.Exclamation, Text)
ShowValidationErrors("Fehler beim Speichern des Umschlags: ", oErrors)
Return False
End If
@@ -122,7 +138,7 @@ Partial Public Class frmEnvelopeEditor
Return False
End If
If Controller.SaveEnvelope(oEnvelope) = False Then
If Controller.SaveEnvelope() = False Then
MsgBox("Fehler beim Speichern des Umschlags!", MsgBoxStyle.Critical, Text)
Return False
Else
@@ -130,6 +146,11 @@ Partial Public Class frmEnvelopeEditor
End If
End Function
Private Sub ShowValidationErrors(pErrorTitle As String, pErrors As List(Of String))
Dim oError = pErrorTitle & vbNewLine & vbNewLine & String.Join(vbNewLine, pErrors)
MsgBox(oError, MsgBoxStyle.Exclamation, Text)
End Sub
Private Sub btnDeleteReceiver_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDeleteReceiver.ItemClick
If ViewReceivers.SelectedRowsCount = 0 Then
Exit Sub
@@ -157,4 +178,24 @@ Partial Public Class frmEnvelopeEditor
End If
End Sub
Private Sub btnSendEnvelope_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSendEnvelope.ItemClick
If SaveEnvelope() = False Then
Exit Sub
End If
Dim oErrors = Controller.ValidateEnvelopeForSending()
If oErrors.Any() Then
ShowValidationErrors("Fehler beim Senden des Umschlags: ", oErrors)
Exit Sub
End If
If Controller.SendEnvelope() = False Then
MsgBox("Umschlag konnte nicht gesendet werden!", MsgBoxStyle.Critical, Text)
End If
End Sub
Private Sub btnCancel_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnCancel.ItemClick
End Sub
End Class