This commit is contained in:
Jonathan Jenne 2024-01-11 11:20:23 +01:00
parent 32a965800e
commit 52ffcc21cc
15 changed files with 758 additions and 681 deletions

View File

@ -6,7 +6,7 @@
EnvelopeCreated = 1001
EnvelopeSaved = 1002
EnvelopeQueued = 1003
EnvelopeSent = 1004
EnvelopeSent = 1004 ' Nicht verwendet
EnvelopePartlySigned = 1005
EnvelopeCompletelySigned = 1006
EnvelopeArchived = 1007

View File

@ -1,4 +1,5 @@
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Public Class EmailTemplate
Private _DocumentReceivedBodyTemplate As List(Of String)
@ -15,13 +16,17 @@ Public Class EmailTemplate
Private _replaceDictionary As Dictionary(Of String, String)
Private DbConfig As DbConfig
Private ReadOnly DbConfig As DbConfig
Private ReadOnly LogConfig As LogConfig
Private ReadOnly Logger As Logger
Public Sub New(pState As State)
InitBodyTemplates()
InitSubjectTemplates()
DbConfig = pState.DbConfig
LogConfig = pState.LogConfig
Logger = LogConfig.GetLogger()
End Sub
Private Sub InitSubjectTemplates()
@ -29,7 +34,7 @@ Public Class EmailTemplate
_DocumentSignedSubjectTemplate = "Dokument unterschrieben: '[DOCUMENT_TITLE]'"
_DocumentDeletedSubjectTemplate = "Vorgang zurückgezogen: '[DOCUMENT_TITLE]'"
_DocumentCompletedSubjectTemplate = "Vorgang abgeschlossen: '[DOCUMENT_TITLE]'"
_DocumentAccessCodeReceivedSubjectTemplate = "Dokument Passwort erhalten: '[DOCUMENT_TITLE]'"
_DocumentAccessCodeReceivedSubjectTemplate = "Zugriffscode für Dokument erhalten: '[DOCUMENT_TITLE]'"
End Sub
@ -82,7 +87,7 @@ Public Class EmailTemplate
"Guten Tag [NAME_RECEIVER]",
"",
"[NAME_SENDER] hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet. ",
"Verwenden Sie das folgende Passwort, um das Dokument einzusehen:",
"Verwenden Sie den folgenden Zugriffscode, um das Dokument einzusehen:",
"",
"[DOCUMENT_ACCESS_CODE]",
"",
@ -92,6 +97,8 @@ Public Class EmailTemplate
End Sub
Private Sub InitDictionary(pEmailData As EmailData)
Logger.Debug("Initializing dictionary..")
_replaceDictionary = New Dictionary(Of String, String) From {
{"[NAME_RECEIVER]", pEmailData.ReceiverName},
{"[NAME_SENDER]", pEmailData.SenderName},

View File

@ -60,6 +60,11 @@ Namespace Jobs
Logger.Debug("Loading Models & Services")
Dim oState = GetState()
InitializeModels(oState)
Logger.Debug("Loading Configuration..")
Config = ConfigModel.LoadConfiguration()
oState.DbConfig = Config
InitializeServices(oState)
Logger.Debug("Loading PDFBurner..")
@ -71,9 +76,6 @@ Namespace Jobs
Logger.Debug("Loading ReportCreator..")
ReportCreator = New ReportCreator(LogConfig, oState)
Logger.Debug("Loading Configuration..")
Config = ConfigModel.LoadConfiguration()
Logger.Debug("DocumentPath: [{0}]", Config.DocumentPath)
Logger.Debug("ExportPath: [{0}]", Config.ExportPath)
@ -117,12 +119,6 @@ Namespace Jobs
Throw New ApplicationException("Document could not be finalized")
End If
Logger.Debug("Setting envelope status..")
If ActionService.FinalizeEnvelope(oEnvelope) = False Then
Logger.Warn("Envelope could not be finalized!")
Throw New ApplicationException("Envelope could not be finalized")
End If
Logger.Debug("Creating report..")
Dim oReport As Byte() = ReportCreator.CreateReport(oEnvelope)
Logger.Debug("Report created.")
@ -144,10 +140,18 @@ Namespace Jobs
Throw New ExportDocumentException("Could not export final document to disk!", ex)
End Try
Logger.Info("Sending final Emails..")
If SendFinalEmails(oEnvelope, oOutputFilePath) = False Then
Throw New ApplicationException("Final emails could not be sent!")
End If
Logger.Debug("Setting envelope status..")
If ActionService.FinalizeEnvelope(oEnvelope) = False Then
Logger.Warn("Envelope could not be finalized!")
Throw New ApplicationException("Envelope could not be finalized")
End If
oCurrent += 1
Logger.Info("Envelope finalized!")
@ -191,7 +195,7 @@ Namespace Jobs
Private Function SendFinalEmailToCreator(pEnvelope As Envelope, pAttachment As String) As Boolean
Dim oIncludeAttachment = SendFinalEmailWithAttachment(pEnvelope.FinalEmailToCreator)
Dim oAttachment = Nothing
Dim oAttachment = String.Empty
Logger.Debug("Attachment included: [{0}]", oIncludeAttachment)
If oIncludeAttachment Then
@ -208,7 +212,7 @@ Namespace Jobs
Private Function SendFinalEmailToReceivers(pEnvelope As Envelope, pAttachment As String) As Boolean
Dim oIncludeAttachment = SendFinalEmailWithAttachment(pEnvelope.FinalEmailToReceivers)
Dim oAttachment = Nothing
Dim oAttachment = String.Empty
Logger.Debug("Attachment included: [{0}]", oIncludeAttachment)
If oIncludeAttachment Then

View File

@ -109,10 +109,18 @@ Public Class ActionService
End Function
Public Function CompleteEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pAttachment As String) As Boolean
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent, pReceiver.Email) = False Then
Return False
End If
Return EmailService.SendDocumentCompletedEmailToReceiver(pEnvelope, pReceiver, pAttachment)
End Function
Public Function CompleteEnvelope(pEnvelope As Envelope, pAttachment As String) As Boolean
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent, pEnvelope.User.Email) = False Then
Return False
End If
Return EmailService.SendDocumentCompletedEmailToCreator(pEnvelope, pAttachment)
End Function

View File

@ -16,6 +16,7 @@ Public Class EmailService
End Sub
Public Function SendEnvelopeDeletedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Logger.Debug("Creating email data object.")
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageDeletionSent) With
{
.SignatureLink = ""
@ -32,6 +33,7 @@ Public Class EmailService
End Function
Public Function SendDocumentReceivedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Logger.Debug("Creating email data object.")
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageInvitationSent) With
{
.SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature)
@ -48,7 +50,7 @@ Public Class EmailService
End Function
Public Function SendDocumentAccessCodeReceivedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Logger.Debug("Creating email data object.")
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageAccessCodeSent) With
{
.SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature)
@ -65,6 +67,7 @@ Public Class EmailService
End Function
Public Function SendSignedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Logger.Debug("Creating email data object.")
Dim oEmailData = New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageConfirmationSent) With
{
.SignatureLink = ""
@ -81,6 +84,7 @@ Public Class EmailService
End Function
Public Function SendDocumentCompletedEmailToReceiver(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pAttachment As String) As Boolean
Logger.Debug("Creating email data object.")
Dim oEmailData = New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageCompletionSent) With
{
.SignatureLink = "",
@ -100,6 +104,7 @@ Public Class EmailService
End Function
Public Function SendDocumentCompletedEmailToCreator(pEnvelope As Envelope, pAttachment As String) As Boolean
Logger.Debug("Creating email data object.")
Dim oEmailData = New EmailData(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent) With
{
.SignatureLink = "",

View File

@ -64,6 +64,33 @@ Namespace My.Resources
End Set
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Zugriffscode korrekt eingegeben ähnelt.
'''</summary>
Public Shared ReadOnly Property AccessCodeCorrect() As String
Get
Return ResourceManager.GetString("AccessCodeCorrect", resourceCulture)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Zugriffscode falsch eingegeben ähnelt.
'''</summary>
Public Shared ReadOnly Property AccessCodeIncorrect() As String
Get
Return ResourceManager.GetString("AccessCodeIncorrect", resourceCulture)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Zugriffscode angefordert ähnelt.
'''</summary>
Public Shared ReadOnly Property AccessCodeRequested() As String
Get
Return ResourceManager.GetString("AccessCodeRequested", resourceCulture)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Abgeschlossen ähnelt.
'''</summary>
@ -217,6 +244,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Zugriffscode versendet ähnelt.
'''</summary>
Public Shared ReadOnly Property MessageAccessCodeSent() As String
Get
Return ResourceManager.GetString("MessageAccessCodeSent", resourceCulture)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Abschlussemail versendet ähnelt.
'''</summary>
Public Shared ReadOnly Property MessageCompletionSent() As String
Get
Return ResourceManager.GetString("MessageCompletionSent", resourceCulture)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Bestätigung versendet ähnelt.
'''</summary>

View File

@ -117,6 +117,15 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AccessCodeCorrect" xml:space="preserve">
<value>Accesscode entered correctly</value>
</data>
<data name="AccessCodeIncorrect" xml:space="preserve">
<value>Accesscode entered incorrectly</value>
</data>
<data name="AccessCodeRequested" xml:space="preserve">
<value>Accesscode requested</value>
</data>
<data name="Completed" xml:space="preserve">
<value>Completed</value>
</data>
@ -165,6 +174,12 @@
<data name="EnvelopeTransmittedDMS" xml:space="preserve">
<value>DMS</value>
</data>
<data name="MessageAccessCodeSent" xml:space="preserve">
<value>Accesscode sent</value>
</data>
<data name="MessageCompletionSent" xml:space="preserve">
<value>Final email sent</value>
</data>
<data name="MessageConfirmationSent" xml:space="preserve">
<value>Confirmation Sent</value>
</data>

View File

@ -117,6 +117,15 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AccessCodeCorrect" xml:space="preserve">
<value>Zugriffscode korrekt eingegeben</value>
</data>
<data name="AccessCodeIncorrect" xml:space="preserve">
<value>Zugriffscode falsch eingegeben</value>
</data>
<data name="AccessCodeRequested" xml:space="preserve">
<value>Zugriffscode angefordert</value>
</data>
<data name="Completed" xml:space="preserve">
<value>Abgeschlossen</value>
</data>
@ -168,6 +177,12 @@
<data name="EnvelopeTransmittedDMS" xml:space="preserve">
<value>DMS</value>
</data>
<data name="MessageAccessCodeSent" xml:space="preserve">
<value>Zugriffscode versendet</value>
</data>
<data name="MessageCompletionSent" xml:space="preserve">
<value>Abschlussemail versendet</value>
</data>
<data name="MessageConfirmationSent" xml:space="preserve">
<value>Bestätigung versendet</value>
</data>

View File

@ -101,9 +101,19 @@ Partial Public Class frmEnvelopeEditor
RepositoryItemComboBox1.Items.Clear()
RepositoryItemComboBox1.Items.AddRange(AllReceiverEmails)
SetAccessCodeColumnVisible()
SetFormTitle(Controller.Envelope.Title)
End Sub
Private Sub SetAccessCodeColumnVisible()
If Controller.Envelope.UseAccessCode Then
colAccessCode.Visible = True
Else
colAccessCode.Visible = False
End If
End Sub
Private Sub btnDeleteFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDeleteFile.ItemClick
If ViewDocuments.GetSelectedRows().Count > 0 Then
@ -336,6 +346,8 @@ Partial Public Class frmEnvelopeEditor
}
oForm.ShowDialog()
SetAccessCodeColumnVisible()
SetFormTitle(Controller.Envelope.Title)
End Sub

View File

@ -105,7 +105,6 @@ Partial Class frmEnvelopeMainData
'
'LayoutControl1
'
resources.ApplyResources(Me.LayoutControl1, "LayoutControl1")
Me.LayoutControl1.Controls.Add(Me.txtTitle)
Me.LayoutControl1.Controls.Add(Me.cmbEnvelopeType)
Me.LayoutControl1.Controls.Add(Me.btOK)
@ -120,6 +119,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControl1.Controls.Add(Me.chkUseAccessCode)
Me.LayoutControl1.Controls.Add(Me.cmbEmailToCreator)
Me.LayoutControl1.Controls.Add(Me.cmbEmailToReceivers)
resources.ApplyResources(Me.LayoutControl1, "LayoutControl1")
Me.LayoutControl1.Name = "LayoutControl1"
Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(855, 189, 650, 400)
Me.LayoutControl1.Root = Me.Root
@ -140,15 +140,15 @@ Partial Class frmEnvelopeMainData
'
'btOK
'
resources.ApplyResources(Me.btOK, "btOK")
Me.btOK.DialogResult = System.Windows.Forms.DialogResult.OK
resources.ApplyResources(Me.btOK, "btOK")
Me.btOK.Name = "btOK"
Me.btOK.StyleController = Me.LayoutControl1
'
'btCancel
'
resources.ApplyResources(Me.btCancel, "btCancel")
Me.btCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
resources.ApplyResources(Me.btCancel, "btCancel")
Me.btCancel.Name = "btCancel"
Me.btCancel.StyleController = Me.LayoutControl1
'
@ -164,10 +164,6 @@ Partial Class frmEnvelopeMainData
resources.ApplyResources(Me.chkSendReminderEmails, "chkSendReminderEmails")
Me.chkSendReminderEmails.Name = "chkSendReminderEmails"
Me.chkSendReminderEmails.Properties.Caption = resources.GetString("chkSendReminderEmails.Properties.Caption")
Me.chkSendReminderEmails.Properties.DisplayValueChecked = resources.GetString("chkSendReminderEmails.Properties.DisplayValueChecked")
Me.chkSendReminderEmails.Properties.DisplayValueGrayed = resources.GetString("chkSendReminderEmails.Properties.DisplayValueGrayed")
Me.chkSendReminderEmails.Properties.DisplayValueUnchecked = resources.GetString("chkSendReminderEmails.Properties.DisplayValueUnchecked")
Me.chkSendReminderEmails.Properties.GlyphVerticalAlignment = CType(resources.GetObject("chkSendReminderEmails.Properties.GlyphVerticalAlignment"), DevExpress.Utils.VertAlignment)
Me.chkSendReminderEmails.StyleController = Me.LayoutControl1
'
'spnFirstReminderDays
@ -210,10 +206,6 @@ Partial Class frmEnvelopeMainData
resources.ApplyResources(Me.chkUseAccessCode, "chkUseAccessCode")
Me.chkUseAccessCode.Name = "chkUseAccessCode"
Me.chkUseAccessCode.Properties.Caption = resources.GetString("chkUseAccessCode.Properties.Caption")
Me.chkUseAccessCode.Properties.DisplayValueChecked = resources.GetString("chkUseAccessCode.Properties.DisplayValueChecked")
Me.chkUseAccessCode.Properties.DisplayValueGrayed = resources.GetString("chkUseAccessCode.Properties.DisplayValueGrayed")
Me.chkUseAccessCode.Properties.DisplayValueUnchecked = resources.GetString("chkUseAccessCode.Properties.DisplayValueUnchecked")
Me.chkUseAccessCode.Properties.GlyphVerticalAlignment = CType(resources.GetObject("chkUseAccessCode.Properties.GlyphVerticalAlignment"), DevExpress.Utils.VertAlignment)
Me.chkUseAccessCode.StyleController = Me.LayoutControl1
'
'cmbEmailToCreator
@ -232,7 +224,6 @@ Partial Class frmEnvelopeMainData
'
'Root
'
resources.ApplyResources(Me.Root, "Root")
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.Root.GroupBordersVisible = False
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem3, Me.LayoutControlGroup1, Me.LayoutControlItem4, Me.emptySpaceItem1, Me.groupAllOptions})
@ -242,8 +233,8 @@ Partial Class frmEnvelopeMainData
'
'LayoutControlItem3
'
resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3")
Me.LayoutControlItem3.Control = Me.btOK
resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3")
Me.LayoutControlItem3.Location = New System.Drawing.Point(10, 624)
Me.LayoutControlItem3.MaxSize = New System.Drawing.Size(70, 27)
Me.LayoutControlItem3.MinSize = New System.Drawing.Size(70, 27)
@ -256,34 +247,34 @@ Partial Class frmEnvelopeMainData
'
'LayoutControlGroup1
'
resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2})
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
Me.LayoutControlGroup1.Size = New System.Drawing.Size(571, 93)
resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
'
'LayoutControlItem1
'
resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1")
Me.LayoutControlItem1.Control = Me.txtTitle
Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem1.Name = "LayoutControlItem1"
Me.LayoutControlItem1.Size = New System.Drawing.Size(547, 24)
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1")
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(168, 13)
'
'LayoutControlItem2
'
resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2")
Me.LayoutControlItem2.Control = Me.cmbEnvelopeType
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 24)
Me.LayoutControlItem2.Name = "LayoutControlItem2"
Me.LayoutControlItem2.Size = New System.Drawing.Size(547, 24)
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2")
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(168, 13)
'
'LayoutControlItem4
'
resources.ApplyResources(Me.LayoutControlItem4, "LayoutControlItem4")
Me.LayoutControlItem4.Control = Me.btCancel
resources.ApplyResources(Me.LayoutControlItem4, "LayoutControlItem4")
Me.LayoutControlItem4.Location = New System.Drawing.Point(80, 624)
Me.LayoutControlItem4.MaxSize = New System.Drawing.Size(70, 27)
Me.LayoutControlItem4.MinSize = New System.Drawing.Size(70, 27)
@ -296,8 +287,8 @@ Partial Class frmEnvelopeMainData
'
'emptySpaceItem1
'
resources.ApplyResources(Me.emptySpaceItem1, "emptySpaceItem1")
Me.emptySpaceItem1.AllowHotTrack = False
resources.ApplyResources(Me.emptySpaceItem1, "emptySpaceItem1")
Me.emptySpaceItem1.Location = New System.Drawing.Point(0, 624)
Me.emptySpaceItem1.MaxSize = New System.Drawing.Size(10, 27)
Me.emptySpaceItem1.MinSize = New System.Drawing.Size(10, 27)
@ -308,7 +299,6 @@ Partial Class frmEnvelopeMainData
'
'groupAllOptions
'
resources.ApplyResources(Me.groupAllOptions, "groupAllOptions")
Me.groupAllOptions.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[False]
Me.groupAllOptions.ExpandButtonVisible = True
Me.groupAllOptions.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.EmptySpaceItem2, Me.groupFinalEmail, Me.groupExpiration, Me.groupReminders, Me.groupOptions})
@ -316,10 +306,10 @@ Partial Class frmEnvelopeMainData
Me.groupAllOptions.Name = "groupAllOptions"
Me.groupAllOptions.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
Me.groupAllOptions.Size = New System.Drawing.Size(571, 531)
resources.ApplyResources(Me.groupAllOptions, "groupAllOptions")
'
'EmptySpaceItem2
'
resources.ApplyResources(Me.EmptySpaceItem2, "EmptySpaceItem2")
Me.EmptySpaceItem2.AllowHotTrack = False
Me.EmptySpaceItem2.Location = New System.Drawing.Point(0, 416)
Me.EmptySpaceItem2.Name = "EmptySpaceItem2"
@ -328,70 +318,71 @@ Partial Class frmEnvelopeMainData
'
'groupFinalEmail
'
resources.ApplyResources(Me.groupFinalEmail, "groupFinalEmail")
Me.groupFinalEmail.GroupStyle = DevExpress.Utils.GroupStyle.Light
Me.groupFinalEmail.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem9, Me.LayoutControlItem14})
Me.groupFinalEmail.Location = New System.Drawing.Point(0, 323)
Me.groupFinalEmail.Name = "groupFinalEmail"
Me.groupFinalEmail.Size = New System.Drawing.Size(565, 93)
resources.ApplyResources(Me.groupFinalEmail, "groupFinalEmail")
'
'LayoutControlItem9
'
resources.ApplyResources(Me.LayoutControlItem9, "LayoutControlItem9")
Me.LayoutControlItem9.Control = Me.cmbEmailToCreator
Me.LayoutControlItem9.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem9.Name = "LayoutControlItem9"
Me.LayoutControlItem9.Size = New System.Drawing.Size(541, 24)
Me.LayoutControlItem9.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem9, "LayoutControlItem9")
Me.LayoutControlItem9.TextSize = New System.Drawing.Size(168, 13)
'
'LayoutControlItem14
'
resources.ApplyResources(Me.LayoutControlItem14, "LayoutControlItem14")
Me.LayoutControlItem14.Control = Me.cmbEmailToReceivers
Me.LayoutControlItem14.Location = New System.Drawing.Point(0, 24)
Me.LayoutControlItem14.Name = "LayoutControlItem14"
Me.LayoutControlItem14.Size = New System.Drawing.Size(541, 24)
Me.LayoutControlItem14.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem14, "LayoutControlItem14")
Me.LayoutControlItem14.TextSize = New System.Drawing.Size(168, 13)
'
'groupExpiration
'
resources.ApplyResources(Me.groupExpiration, "groupExpiration")
Me.groupExpiration.Enabled = False
Me.groupExpiration.GroupStyle = DevExpress.Utils.GroupStyle.Light
Me.groupExpiration.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem10, Me.LayoutControlItem11})
Me.groupExpiration.Location = New System.Drawing.Point(0, 230)
Me.groupExpiration.Name = "groupExpiration"
Me.groupExpiration.Size = New System.Drawing.Size(565, 93)
resources.ApplyResources(Me.groupExpiration, "groupExpiration")
'
'LayoutControlItem10
'
resources.ApplyResources(Me.LayoutControlItem10, "LayoutControlItem10")
Me.LayoutControlItem10.Control = Me.spnExpiresDays
Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem10.Name = "LayoutControlItem10"
Me.LayoutControlItem10.Size = New System.Drawing.Size(541, 24)
Me.LayoutControlItem10.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem10, "LayoutControlItem10")
Me.LayoutControlItem10.TextSize = New System.Drawing.Size(168, 13)
'
'LayoutControlItem11
'
resources.ApplyResources(Me.LayoutControlItem11, "LayoutControlItem11")
Me.LayoutControlItem11.Control = Me.spnExpiresWarningDays
Me.LayoutControlItem11.Location = New System.Drawing.Point(0, 24)
Me.LayoutControlItem11.Name = "LayoutControlItem11"
Me.LayoutControlItem11.Size = New System.Drawing.Size(541, 24)
Me.LayoutControlItem11.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem11, "LayoutControlItem11")
Me.LayoutControlItem11.TextSize = New System.Drawing.Size(168, 13)
'
'groupReminders
'
resources.ApplyResources(Me.groupReminders, "groupReminders")
Me.groupReminders.Enabled = False
Me.groupReminders.GroupStyle = DevExpress.Utils.GroupStyle.Light
Me.groupReminders.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem7})
Me.groupReminders.Location = New System.Drawing.Point(0, 115)
Me.groupReminders.Name = "groupReminders"
Me.groupReminders.Size = New System.Drawing.Size(565, 115)
resources.ApplyResources(Me.groupReminders, "groupReminders")
'
'LayoutControlItem5
'
resources.ApplyResources(Me.LayoutControlItem5, "LayoutControlItem5")
Me.LayoutControlItem5.Control = Me.chkSendReminderEmails
Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem5.Name = "LayoutControlItem5"
@ -401,52 +392,51 @@ Partial Class frmEnvelopeMainData
'
'LayoutControlItem6
'
resources.ApplyResources(Me.LayoutControlItem6, "LayoutControlItem6")
Me.LayoutControlItem6.Control = Me.spnFirstReminderDays
Me.LayoutControlItem6.Location = New System.Drawing.Point(0, 22)
Me.LayoutControlItem6.Name = "LayoutControlItem6"
Me.LayoutControlItem6.Size = New System.Drawing.Size(541, 24)
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem6, "LayoutControlItem6")
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(168, 13)
'
'LayoutControlItem7
'
resources.ApplyResources(Me.LayoutControlItem7, "LayoutControlItem7")
Me.LayoutControlItem7.Control = Me.spnReminderIntervalDays
Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 46)
Me.LayoutControlItem7.Name = "LayoutControlItem7"
Me.LayoutControlItem7.Size = New System.Drawing.Size(541, 24)
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem7, "LayoutControlItem7")
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(168, 13)
'
'groupOptions
'
resources.ApplyResources(Me.groupOptions, "groupOptions")
Me.groupOptions.GroupStyle = DevExpress.Utils.GroupStyle.Light
Me.groupOptions.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem8, Me.LayoutControlItem12, Me.LayoutControlItem13})
Me.groupOptions.Location = New System.Drawing.Point(0, 0)
Me.groupOptions.Name = "groupOptions"
Me.groupOptions.Size = New System.Drawing.Size(565, 115)
resources.ApplyResources(Me.groupOptions, "groupOptions")
'
'LayoutControlItem8
'
resources.ApplyResources(Me.LayoutControlItem8, "LayoutControlItem8")
Me.LayoutControlItem8.Control = Me.cmbCertificationType
Me.LayoutControlItem8.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem8.Name = "LayoutControlItem8"
Me.LayoutControlItem8.Size = New System.Drawing.Size(541, 24)
Me.LayoutControlItem8.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem8, "LayoutControlItem8")
Me.LayoutControlItem8.TextSize = New System.Drawing.Size(168, 13)
'
'LayoutControlItem12
'
resources.ApplyResources(Me.LayoutControlItem12, "LayoutControlItem12")
Me.LayoutControlItem12.Control = Me.cmbLanguage
Me.LayoutControlItem12.Location = New System.Drawing.Point(0, 24)
Me.LayoutControlItem12.Name = "LayoutControlItem12"
Me.LayoutControlItem12.Size = New System.Drawing.Size(541, 24)
Me.LayoutControlItem12.TextSize = New System.Drawing.Size(187, 13)
resources.ApplyResources(Me.LayoutControlItem12, "LayoutControlItem12")
Me.LayoutControlItem12.TextSize = New System.Drawing.Size(168, 13)
'
'LayoutControlItem13
'
resources.ApplyResources(Me.LayoutControlItem13, "LayoutControlItem13")
Me.LayoutControlItem13.Control = Me.chkUseAccessCode
Me.LayoutControlItem13.Location = New System.Drawing.Point(0, 48)
Me.LayoutControlItem13.Name = "LayoutControlItem13"
@ -457,9 +447,6 @@ Partial Class frmEnvelopeMainData
'AdornerUIManager1
'
Me.AdornerUIManager1.Owner = Me
Me.AdornerUIManager1.ValidationHintProperties.IndeterminateState.Text = resources.GetString("AdornerUIManager1.ValidationHintProperties.IndeterminateState.Text")
Me.AdornerUIManager1.ValidationHintProperties.InvalidState.Text = resources.GetString("AdornerUIManager1.ValidationHintProperties.InvalidState.Text")
Me.AdornerUIManager1.ValidationHintProperties.ValidState.Text = resources.GetString("AdornerUIManager1.ValidationHintProperties.ValidState.Text")
'
'frmEnvelopeMainData
'

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,12 @@ Public Class frmEnvelopeMainData
EnvelopeTypeModel = New EnvelopeTypeModel(State)
Dim oTypes = EnvelopeTypeModel.List()
If oTypes.Count = 0 Then
MsgBox("No templates in Database!", MsgBoxStyle.Exclamation, Text)
Close()
Exit Sub
End If
Dim certificationTypeList = [Enum].GetValues(GetType(CertificationType)).Cast(Of CertificationType)()
Dim oTranslatedCertificationTypeList = certificationTypeList.Select(AddressOf TranslateCertificationType).ToList()
@ -46,11 +52,23 @@ Public Class frmEnvelopeMainData
groupAllOptions.Expanded = False
txtTitle.EditValue = Envelope.Title
cmbEnvelopeType.EditValue = oTypes.FirstOrDefault()
cmbCertificationType.SelectedIndex = oTypes.FirstOrDefault.CertificationType
cmbEmailToCreator.SelectedIndex = oTypes.FirstOrDefault.FinalEmailToCreator
cmbEmailToReceivers.SelectedIndex = oTypes.FirstOrDefault.FinalEmailToReceivers
If NewEnvelopeMode = True Then
Dim oType = oTypes.FirstOrDefault()
' This will trigger loading values from the type
cmbEnvelopeType.EditValue = oType
Else
' This will trigger loading values from the type
cmbEnvelopeType.SelectedIndex = Convert.ToInt32(Envelope.EnvelopeType) - 1
' Now we can override these values with the values from envelope
txtTitle.EditValue = Envelope.Title
chkUseAccessCode.EditValue = Envelope.UseAccessCode
cmbCertificationType.SelectedIndex = Convert.ToInt32(Envelope.CertificationType) - 1
cmbEmailToCreator.SelectedIndex = Convert.ToInt32(Envelope.FinalEmailToCreator)
cmbEmailToReceivers.SelectedIndex = Convert.ToInt32(Envelope.FinalEmailToReceivers)
End If
End Sub
Private Function TranslateCertificationType(pType As CertificationType) As String
@ -74,7 +92,7 @@ Public Class frmEnvelopeMainData
Envelope.Title = txtTitle.EditValue.ToString
Envelope.EnvelopeType = DirectCast(cmbEnvelopeType.EditValue, EnvelopeType).Id
Envelope.CertificationType = cmbCertificationType.EditValue
Envelope.CertificationType = cmbCertificationType.SelectedIndex + 1
Envelope.Language = cmbLanguage.EditValue
Envelope.UseAccessCode = chkUseAccessCode.EditValue
Envelope.SendReminderEmails = chkSendReminderEmails.EditValue
@ -82,8 +100,8 @@ Public Class frmEnvelopeMainData
Envelope.ReminderIntervalDays = spnReminderIntervalDays.EditValue
Envelope.ExpiresWhenDays = spnExpiresDays.EditValue
Envelope.ExpiresWarningWhenDays = spnExpiresWarningDays.EditValue
Envelope.FinalEmailToCreator = cmbEmailToCreator.EditValue
Envelope.FinalEmailToReceivers = cmbEmailToReceivers.EditValue
Envelope.FinalEmailToCreator = cmbEmailToCreator.SelectedIndex
Envelope.FinalEmailToReceivers = cmbEmailToReceivers.SelectedIndex
' ContractType kann zzt nicht über die Oberfläche gesetzt werden
Envelope.ContractType = ContractType.Contract
@ -121,7 +139,7 @@ Public Class frmEnvelopeMainData
spnExpiresDays.EditValue = oSelectedType.ExpiresWhenDays
spnExpiresWarningDays.EditValue = oSelectedType.ExpiresWarningWhenDays
cmbCertificationType.SelectedIndex = oSelectedType.CertificationType
cmbCertificationType.SelectedIndex = oSelectedType.CertificationType - 1
cmbEmailToCreator.SelectedIndex = oSelectedType.FinalEmailToCreator
cmbEmailToReceivers.SelectedIndex = oSelectedType.FinalEmailToReceivers

View File

@ -30,11 +30,9 @@ namespace EnvelopeGenerator.Web.Controllers
public IActionResult ShowEnvelope()
{
string envelopeKey = (string)HttpContext.Request.RouteValues["EnvelopeReceiverId"];
EnvelopeResponse response = _envelopeService.LoadEnvelope(envelopeKey);
string accessCode = response.Receiver.AccessCode;
if (!String.IsNullOrEmpty(accessCode))
if (response.Envelope.UseAccessCode)
{
bool accessCodeAlreadyRequested = database.Models.receiverModel.AccessCodeAlreadyRequested(response.Receiver.Email, response.Envelope.Id);

View File

@ -10,18 +10,23 @@
<path d="M9.5 6.5a1.5 1.5 0 0 1-1 1.415l.385 1.99a.5.5 0 0 1-.491.595h-.788a.5.5 0 0 1-.49-.595l.384-1.99a1.5 1.5 0 1 1 2-1.415" />
</svg>
</div>
<h1>Dokument erfordert ein Passwort</h1>
<h1>Dokument erfordert einen Zugriffscode</h1>
</header>
<section class="text-center">
<p>Wir haben Ihnen das Passwort an die hinterlegte Email Adresse gesendet.</p>
<p>Wir haben Ihnen gerade den Zugriffscode an die hinterlegte Email Adresse gesendet.</p>
<details>
<summary>Sie haben keinen Zugriffscode erhalten?</summary>
<p>Bitte überprüfen Sie Ihr Email Postfach inklusive Spam-Ordner. Sie können auch den Absender bitten, Ihnen den Code auf anderem Wege zukommen zu lassen.</p>
</details>
</section>
<section>
<form id="form-access-code" method="post">
<div class="input">
<label class="visually-hidden" for="access_code">PAsswort</label>
<input type="password" class="form-control" name="access_code" placeholder="Passwort" required="required">
<label class="visually-hidden" for="access_code">Zugriffscode</label>
<input type="password" class="form-control" name="access_code" placeholder="Zugriffscode" required="required">
</div>
<div class="button">

View File

@ -257,7 +257,8 @@ class App {
.map(a => a.toJS())
.filter(a => a.isSignature)
console.log(filtered.length, "Signatures signed!")
console.log(annotations.length,"Signatures total!")
console.log(filtered.length,"Signatures signed!")
if (totalSignatures > filtered.length) {
return false