diff --git a/EnvelopeGenerator.Common/Constants.vb b/EnvelopeGenerator.Common/Constants.vb
index 02451f2b..9fa37179 100644
--- a/EnvelopeGenerator.Common/Constants.vb
+++ b/EnvelopeGenerator.Common/Constants.vb
@@ -5,8 +5,8 @@
Created = 0
Saved = 1
Sent = 2
- PartSigned = 3
- CompleteSigned = 4
+ PartlySigned = 3
+ CompletelySigned = 4
End Enum
Public Enum ElementStatus
diff --git a/EnvelopeGenerator.Common/Entities/Envelope.vb b/EnvelopeGenerator.Common/Entities/Envelope.vb
index b0b88607..ba7bc24e 100644
--- a/EnvelopeGenerator.Common/Entities/Envelope.vb
+++ b/EnvelopeGenerator.Common/Entities/Envelope.vb
@@ -55,6 +55,21 @@
Return oErrors
End Function
+ Public Function ValidateReceiverDocumentData() As List(Of String)
+ Dim oErrors As New List(Of String)
+
+ 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
+
+ Return oErrors
+ End Function
+
+
Private Function IsValidEmailAddress(pEmailAddress As String) As Boolean
Try
Dim oAddress = New System.Net.Mail.MailAddress(pEmailAddress)
diff --git a/EnvelopeGenerator.Common/Entities/EnvelopeReceiver.vb b/EnvelopeGenerator.Common/Entities/EnvelopeReceiver.vb
index 1f66aeb8..b6831215 100644
--- a/EnvelopeGenerator.Common/Entities/EnvelopeReceiver.vb
+++ b/EnvelopeGenerator.Common/Entities/EnvelopeReceiver.vb
@@ -2,7 +2,7 @@
Imports EnvelopeGenerator.Common.Constants
Public Class EnvelopeReceiver
- Public Property Id As Integer
+ Public Property Id As Integer = 0
Public Property UserId As Integer
Public Property Signature As String
diff --git a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb
index e21df4c1..63df340d 100644
--- a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb
+++ b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb
@@ -59,7 +59,7 @@ Public Class EnvelopeModel
Public Function List() As IEnumerable(Of Envelope)
Try
- Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId}"
+ Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId} AND STATUS IN (0,1,2,3)"
Dim oTable = Database.GetDatatable(oSql)
Return oTable?.Rows.Cast(Of DataRow).
@@ -73,7 +73,7 @@ Public Class EnvelopeModel
Public Function ListCompleted() As IEnumerable(Of Envelope)
Try
- Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId} AND STATUS = "
+ Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId} AND STATUS = 4"
Dim oTable = Database.GetDatatable(oSql)
Return oTable?.Rows.Cast(Of DataRow).
diff --git a/EnvelopeGenerator.Common/Strings/Envelope.resx b/EnvelopeGenerator.Common/Strings/Envelope.resx
index 2afac508..898ccfde 100644
--- a/EnvelopeGenerator.Common/Strings/Envelope.resx
+++ b/EnvelopeGenerator.Common/Strings/Envelope.resx
@@ -154,7 +154,7 @@
Empfänger {0} hat keine gültige Email Addresse.
- Missing Documents
+ Fehlendes Dokument
Es muss mindestens ein Signaturfeld gesetzt werden
@@ -163,13 +163,13 @@
Für den Empfänger {0} gibt es noch kein Signaturfeld
- Missing Message
+ Fehlende Nachricht
- Missing Receivers
+ Fehlende Empfänger
- Missing Subject
+ Fehlender Betreff
Es ist nur eine Datei zulässig!
diff --git a/EnvelopeGenerator.Common/Strings/Envelope1.Designer.vb b/EnvelopeGenerator.Common/Strings/Envelope1.Designer.vb
index de39628a..2854a778 100644
--- a/EnvelopeGenerator.Common/Strings/Envelope1.Designer.vb
+++ b/EnvelopeGenerator.Common/Strings/Envelope1.Designer.vb
@@ -173,7 +173,7 @@ Namespace My.Resources
End Property
'''
- ''' Sucht eine lokalisierte Zeichenfolge, die Missing Documents ähnelt.
+ ''' Sucht eine lokalisierte Zeichenfolge, die Fehlendes Dokument ähnelt.
'''
Public Shared ReadOnly Property Missing_Documents() As String
Get
@@ -200,7 +200,7 @@ Namespace My.Resources
End Property
'''
- ''' Sucht eine lokalisierte Zeichenfolge, die Missing Message ähnelt.
+ ''' Sucht eine lokalisierte Zeichenfolge, die Fehlende Nachricht ähnelt.
'''
Public Shared ReadOnly Property Missing_Message() As String
Get
@@ -209,7 +209,7 @@ Namespace My.Resources
End Property
'''
- ''' Sucht eine lokalisierte Zeichenfolge, die Missing Receivers ähnelt.
+ ''' Sucht eine lokalisierte Zeichenfolge, die Fehlende Empfänger ähnelt.
'''
Public Shared ReadOnly Property Missing_Receivers() As String
Get
@@ -218,7 +218,7 @@ Namespace My.Resources
End Property
'''
- ''' Sucht eine lokalisierte Zeichenfolge, die Missing Subject ähnelt.
+ ''' Sucht eine lokalisierte Zeichenfolge, die Fehlender Betreff ähnelt.
'''
Public Shared ReadOnly Property Missing_Subject() As String
Get
diff --git a/EnvelopeGenerator.Common/Strings/Model.Designer.vb b/EnvelopeGenerator.Common/Strings/Model.Designer.vb
index a8e7e4c1..114f81dd 100644
--- a/EnvelopeGenerator.Common/Strings/Model.Designer.vb
+++ b/EnvelopeGenerator.Common/Strings/Model.Designer.vb
@@ -73,6 +73,15 @@ Namespace My.Resources
End Get
End Property
+ '''
+ ''' Sucht eine lokalisierte Zeichenfolge, die Vollständig Signiert ähnelt.
+ '''
+ Friend Shared ReadOnly Property CompletelySigned() As String
+ Get
+ Return ResourceManager.GetString("CompletelySigned", resourceCulture)
+ End Get
+ End Property
+
'''
''' Sucht eine lokalisierte Zeichenfolge, die Vertrag ähnelt.
'''
@@ -100,6 +109,15 @@ Namespace My.Resources
End Get
End Property
+ '''
+ ''' Sucht eine lokalisierte Zeichenfolge, die Teil-Signiert ähnelt.
+ '''
+ Friend Shared ReadOnly Property PartlySigned() As String
+ Get
+ Return ResourceManager.GetString("PartlySigned", resourceCulture)
+ End Get
+ End Property
+
'''
''' Sucht eine lokalisierte Zeichenfolge, die ReadAndSign ähnelt.
'''
diff --git a/EnvelopeGenerator.Common/Strings/Model.resx b/EnvelopeGenerator.Common/Strings/Model.resx
index c290f8b1..612f3c1c 100644
--- a/EnvelopeGenerator.Common/Strings/Model.resx
+++ b/EnvelopeGenerator.Common/Strings/Model.resx
@@ -120,6 +120,9 @@
Abgeschlossen
+
+ Vollständig Signiert
+
Vertrag
@@ -129,6 +132,9 @@
Entwurf
+
+ Teil-Signiert
+
ReadAndSign
diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb
index d078cdef..55aa097d 100644
--- a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb
+++ b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb
@@ -265,21 +265,20 @@ Public Class EnvelopeEditorController
Dim oExistingReceivers As List(Of EnvelopeReceiver) = ReceiverModel.ListReceivers(pCurrentReceivers)
Dim oExistingAddresses = oExistingReceivers.Select(Function(r) r.Email)
+ ' Neue Empfänger
Dim oNewReceivers = pCurrentReceivers.
Where(Function(r) Not oExistingAddresses.Contains(r.Email)).ToList()
- For Each oReceiver In oNewReceivers
- oReceiver.Id = 0
- Next
-
+ ' Empfänger, die bereits einmal verwendet wurden
For Each oCurrentReceiver In pCurrentReceivers
If oCurrentReceiver.Id = 0 Then
- Dim oExistingReceiver As EnvelopeReceiver = oExistingReceivers.Where(Function(r) r.Email = oCurrentReceiver.Email).First()
- oCurrentReceiver.Id = oExistingReceiver.Id
+ Dim oExistingReceiver As EnvelopeReceiver = oExistingReceivers.Where(Function(r) r.Email.Equals(oCurrentReceiver.Email, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault()
+ If oExistingReceiver IsNot Nothing Then
+ oCurrentReceiver.Id = oExistingReceiver.Id
+ End If
End If
Next
-
Dim oConnection = Database.GetConnection()
Dim oTransaction = oConnection.BeginTransaction()
diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb
index 98c92506..2c0bf02c 100644
--- a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb
+++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb
@@ -1,5 +1,4 @@
Imports System.ComponentModel
-Imports System.Runtime.Remoting.Messaging
Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Grid
@@ -117,12 +116,15 @@ Partial Public Class frmEnvelopeEditor
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try
+ If SaveEnvelopeWithReceiverDocumentValidation() = False Then
+ Return
+ End If
+
If ViewDocuments.GetSelectedRows().Count > 0 Then
Dim oDocument As EnvelopeDocument = DirectCast(ViewDocuments.GetFocusedRow(), EnvelopeDocument)
Dim oGDPictureKey As String = "21182889975216572111813147150675976632"
- If SaveEnvelopeWithOutValidation() Then
- Dim oForm As New frmFieldEditor() With {
+ Dim oForm As New frmFieldEditor() With {
.Document = Controller.Envelope.Documents.
Where(Function(d) d.Filename = oDocument.Filename).
SingleOrDefault(),
@@ -130,8 +132,8 @@ Partial Public Class frmEnvelopeEditor
.Receivers = Receivers.ToList,
.State = State
}
- oForm.ShowDialog()
- End If
+ oForm.ShowDialog()
+
End If
Catch ex As Exception
Logger.Error(ex)
@@ -148,6 +150,26 @@ Partial Public Class frmEnvelopeEditor
Return SaveEnvelope(False)
End Function
+ '''
+ ''' Speichert den Envelope und prüft
+ ''' ob Receiver und Dokument vorhanden ist.
+ '''
+ Private Function SaveEnvelopeWithReceiverDocumentValidation() As Boolean
+
+ If SaveEnvelope(False) = True Then
+ Dim oEnvelope = Controller.Envelope
+ Dim oErrors = oEnvelope.ValidateReceiverDocumentData()
+ If oErrors.Any Then
+ ShowValidationErrors(Resources.Envelope.Errors_when_saving_the_envelope, oErrors)
+ Return False
+ End If
+ Else
+ Return False
+ End If
+
+ Return True
+ End Function
+
Private Function SaveEnvelope(pWithValidation As Boolean) As Boolean
Dim oSubject = GetEditValueFromTextControl(txtSubject)
Dim oMessage = GetEditValueFromTextControl(txtMessage)
diff --git a/EnvelopeGenerator.Form/frmMain.vb b/EnvelopeGenerator.Form/frmMain.vb
index 60767237..4a655cbb 100644
--- a/EnvelopeGenerator.Form/frmMain.vb
+++ b/EnvelopeGenerator.Form/frmMain.vb
@@ -68,12 +68,7 @@ Public Class frmMain
Controller = New EnvelopeListController(State)
LoadEnvelopes()
-
-
- GridBuilder = New GridBuilder(ViewEnvelopes)
- GridBuilder.SetDefaults(ViewEnvelopes)
- GridBuilder.SetReadOnlyOptions(ViewEnvelopes)
-
+ LoadCompletedEnvelopes()
Catch ex As Exception
Logger.Error(ex)