From 40739b598b1075926efae1963f416ea878203792 Mon Sep 17 00:00:00 2001 From: Developer01 Date: Mon, 22 Jul 2024 09:46:48 +0200 Subject: [PATCH 1/3] MS SignatureLink --- .../Services/EmailService.vb | 9 +++++ EnvelopeGenerator.Form/frmMain.Designer.vb | 23 +++++++----- EnvelopeGenerator.Form/frmMain.resx | 37 ++++++++++++++----- EnvelopeGenerator.Form/frmMain.vb | 33 +++++++++++++++++ 4 files changed, 83 insertions(+), 19 deletions(-) diff --git a/EnvelopeGenerator.Common/Services/EmailService.vb b/EnvelopeGenerator.Common/Services/EmailService.vb index c55b3ffa..6ecffa51 100644 --- a/EnvelopeGenerator.Common/Services/EmailService.vb +++ b/EnvelopeGenerator.Common/Services/EmailService.vb @@ -1,6 +1,7 @@  Imports DigitalData.Modules.Base Imports DigitalData.Modules.Logging +Imports EnvelopeGenerator.Common.My.Resources Public Class EmailService Inherits BaseService @@ -48,6 +49,14 @@ Public Class EmailService Return True End Function + Public Function GetReceiverUrl(Envelope As Envelope, pReceiver As EnvelopeReceiver) As String + Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageInvitationSent) With + { + .SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature) + } + Return oEmailData.SignatureLink + End Function + Public Function SendDocumentAccessCodeReceivedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean Logger.Debug("Creating email data object.") diff --git a/EnvelopeGenerator.Form/frmMain.Designer.vb b/EnvelopeGenerator.Form/frmMain.Designer.vb index 9366475b..5fc68b4a 100644 --- a/EnvelopeGenerator.Form/frmMain.Designer.vb +++ b/EnvelopeGenerator.Form/frmMain.Designer.vb @@ -64,7 +64,6 @@ Partial Class frmMain Me.RibbonPageEnvelopeActions = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() @@ -86,6 +85,7 @@ Partial Class frmMain Me.GridColumn7 = New DevExpress.XtraGrid.Columns.GridColumn() Me.RefreshTimer = New System.Windows.Forms.Timer(Me.components) Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() + Me.bbtnitmInfoMail = New DevExpress.XtraBars.BarButtonItem() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.Panel1.SuspendLayout() @@ -291,9 +291,9 @@ Partial Class frmMain Me.RibbonControl.ExpandCollapseItem.Id = 0 Me.RibbonControl.ExpandCollapseItem.ImageOptions.ImageIndex = CType(resources.GetObject("RibbonControl.ExpandCollapseItem.ImageOptions.ImageIndex"), Integer) Me.RibbonControl.ExpandCollapseItem.ImageOptions.LargeImageIndex = CType(resources.GetObject("RibbonControl.ExpandCollapseItem.ImageOptions.LargeImageIndex"), Integer) - Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope, Me.BarButtonItem1, Me.txtRefreshLabel, Me.btnShowDocument, Me.btnContactReceiver, Me.txtEnvelopeIdLabel, Me.btnOpenLogDirectory, Me.BarCheckItem1, Me.bsitmInfo, Me.bbtnitmEB}) + Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope, Me.BarButtonItem1, Me.txtRefreshLabel, Me.btnShowDocument, Me.btnContactReceiver, Me.txtEnvelopeIdLabel, Me.btnOpenLogDirectory, Me.BarCheckItem1, Me.bsitmInfo, Me.bbtnitmEB, Me.bbtnitmInfoMail}) resources.ApplyResources(Me.RibbonControl, "RibbonControl") - Me.RibbonControl.MaxItemId = 15 + Me.RibbonControl.MaxItemId = 16 Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2}) Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] @@ -411,7 +411,7 @@ Partial Class frmMain ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup4}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroup2}) Me.RibbonPage1.Name = "RibbonPage1" resources.ApplyResources(Me.RibbonPage1, "RibbonPage1") ' @@ -434,15 +434,11 @@ Partial Class frmMain ' Me.RibbonPageGroup2.ItemLinks.Add(Me.btnShowDocument) Me.RibbonPageGroup2.ItemLinks.Add(Me.btnContactReceiver) + Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitmInfoMail) Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitmEB) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2") ' - 'RibbonPageGroup4 - ' - Me.RibbonPageGroup4.Name = "RibbonPageGroup4" - resources.ApplyResources(Me.RibbonPageGroup4, "RibbonPageGroup4") - ' 'RibbonPage2 ' Me.RibbonPage2.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) @@ -602,6 +598,13 @@ Partial Class frmMain ' resources.ApplyResources(Me.SaveFileDialog1, "SaveFileDialog1") ' + 'bbtnitmInfoMail + ' + resources.ApplyResources(Me.bbtnitmInfoMail, "bbtnitmInfoMail") + Me.bbtnitmInfoMail.Id = 15 + Me.bbtnitmInfoMail.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.bbtnitmInfoMail.Name = "bbtnitmInfoMail" + ' 'frmMain ' resources.ApplyResources(Me, "$this") @@ -694,6 +697,6 @@ Partial Class frmMain Friend WithEvents BarCheckItem1 As DevExpress.XtraBars.BarCheckItem Friend WithEvents bsitmInfo As DevExpress.XtraBars.BarStaticItem Friend WithEvents SaveFileDialog1 As SaveFileDialog - Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents bbtnitmEB As DevExpress.XtraBars.BarButtonItem + Friend WithEvents bbtnitmInfoMail As DevExpress.XtraBars.BarButtonItem End Class diff --git a/EnvelopeGenerator.Form/frmMain.resx b/EnvelopeGenerator.Form/frmMain.resx index b6466b0d..335a8ade 100644 --- a/EnvelopeGenerator.Form/frmMain.resx +++ b/EnvelopeGenerator.Form/frmMain.resx @@ -709,6 +709,28 @@ My40LTMuOWgtMi4xdjhoMi4yYzEuMSwwLDEuOS0wLjQsMi41LTEuMUMyMC45LDIwLjIsMjEuMiwxOS4y LDIxLjIsMTcuOXogICAgTTI2LDE0aC0zLjd2OGgxLjZ2LTMuMWgydi0xLjNoLTJ2LTIuMkgyNlYxNHoi IGNsYXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs= + + + + Info Mail + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKQCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku + WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLlJlZHtmaWxsOiNEMTFD + MUM7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7Zmls + bDojNzI3MjcyO30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuNzU7fQo8L3N0eWxl + Pg0KICA8ZyBpZD0iTWFpbCI+DQogICAgPHBhdGggZD0iTTE2LDE4LjNsMTQtOFYyNWMwLDAuNS0wLjUs + MS0xLDFIM2MtMC41LDAtMS0wLjUtMS0xVjEwLjNMMTYsMTguM3ogTTI5LDZIM0MyLjUsNiwyLDYuNSwy + LDd2MWwxNCw4bDE0LThWNyAgIEMzMCw2LjUsMjkuNSw2LDI5LDZ6IiBjbGFzcz0iQmxhY2siIC8+DQog + IDwvZz4NCjwvc3ZnPgs= @@ -723,9 +745,6 @@ Funktionen - - RibbonPageGroup4 - Start @@ -1352,12 +1371,6 @@ DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - RibbonPageGroup4 - - - DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - RibbonPage2 @@ -1466,6 +1479,12 @@ System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + bbtnitmInfoMail + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + frmMain diff --git a/EnvelopeGenerator.Form/frmMain.vb b/EnvelopeGenerator.Form/frmMain.vb index 5f0c5e8a..1ce4b46f 100644 --- a/EnvelopeGenerator.Form/frmMain.vb +++ b/EnvelopeGenerator.Form/frmMain.vb @@ -503,5 +503,38 @@ Public Class frmMain RefreshTimer.Start() End Sub + Private Sub bbtnitmInfoMail_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmInfoMail.ItemClick + If ViewEnvelopes.FocusedRowHandle < 0 Then + Exit Sub + End If + + Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle) + Dim oView As GridView = GridEnvelopes.FocusedView + If oView.Name = ViewReceivers.Name Then + Dim oReceiver As EnvelopeReceiver = oView.GetRow(oView.FocusedRowHandle) + Dim oEnvelopeTitle As String = Net.WebUtility.UrlEncode(oEnvelope.Title) + Dim oCode = oReceiver.AccessCode + Dim oUID = oEnvelope.Uuid + Dim oReceiverLink = oReceiver.G + ' E-Mail-Details konfigurieren + Dim mailto As String = "support-flow@digitaldata.works" + Dim subject As String = "signFLOW - Envelope issue" + Dim body As String = $"

Dear Digital Data Team,
There is an error or misbehavin with following envelope and Receiver:

Envelope: {oUID}
Error in module

An error occurred in the module. Please check the logs for more details.

" + + ' URL-encoding für Betreff und Inhalt der E-Mail + Dim encodedSubject As String = Uri.EscapeDataString(subject) + Dim encodedBody As String = Uri.EscapeDataString(body) + + ' mailto-Link erstellen + Dim mailtoLink As String = $"{mailto}?subject={encodedSubject}&body={encodedBody}" + + ' E-Mail-Client öffnen + Process.Start(mailtoLink) + + Process.Start($"mailto:{oReceiver.Email}?subject={oEnvelopeTitle}") + Else + MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text) + End If + End Sub End Class \ No newline at end of file From 8e454a041985aa395982cacf3a5da9375cd70de7 Mon Sep 17 00:00:00 2001 From: Developer01 Date: Tue, 30 Jul 2024 16:24:19 +0200 Subject: [PATCH 2/3] MS --- .../My Project/AssemblyInfo.vb | 4 +- .../Services/ActionService.vb | 5 ++ .../Services/EmailService.vb | 3 +- .../Controllers/EnvelopeEditorController.vb | 3 + EnvelopeGenerator.Form/frmMain.Designer.vb | 14 +++- EnvelopeGenerator.Form/frmMain.resx | 30 ++++++++- EnvelopeGenerator.Form/frmMain.vb | 65 +++++++++++-------- 7 files changed, 92 insertions(+), 32 deletions(-) diff --git a/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb b/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb index 367c3a6d..be1784b9 100644 --- a/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb +++ b/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' indem Sie "*" wie unten gezeigt eingeben: ' - - + + diff --git a/EnvelopeGenerator.Common/Services/ActionService.vb b/EnvelopeGenerator.Common/Services/ActionService.vb index f2eb69e8..24c9d2fa 100644 --- a/EnvelopeGenerator.Common/Services/ActionService.vb +++ b/EnvelopeGenerator.Common/Services/ActionService.vb @@ -1,5 +1,6 @@ Imports DevExpress.DataAccess.Native.Web Imports DigitalData.Modules.Base +Imports EnvelopeGenerator.Common.My.Resources Public Class ActionService Inherits BaseService @@ -33,6 +34,10 @@ Public Class ActionService Return True End Function + Public Function ResendReceiver(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean + EmailService.SendDocumentReceivedEmail(pEnvelope, pReceiver) + End Function + Public Function DeleteEnvelope(pEnvelope As Envelope, pReason As String) As Boolean If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.EnvelopeDeleted, pEnvelope.User.Email) = False Then diff --git a/EnvelopeGenerator.Common/Services/EmailService.vb b/EnvelopeGenerator.Common/Services/EmailService.vb index 6ecffa51..d4e7893c 100644 --- a/EnvelopeGenerator.Common/Services/EmailService.vb +++ b/EnvelopeGenerator.Common/Services/EmailService.vb @@ -49,7 +49,8 @@ Public Class EmailService Return True End Function - Public Function GetReceiverUrl(Envelope As Envelope, pReceiver As EnvelopeReceiver) As String + + Public Function GetReceiverUrl(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As String Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageInvitationSent) With { .SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature) diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb index c5e3044f..8dfbbaf5 100644 --- a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb +++ b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb @@ -38,6 +38,9 @@ Public Class EnvelopeEditorController Public Function SendEnvelope() As Boolean Return ActionService.SendEnvelope(Envelope) End Function + Public Function ResendReceiverInvitation(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean + Return ActionService.ResendReceiver(pEnvelope, pReceiver) + End Function Public Function ValidateEnvelopeForSending(pErrors As List(Of String)) As List(Of String) Dim oEnvelopeErrors = pErrors diff --git a/EnvelopeGenerator.Form/frmMain.Designer.vb b/EnvelopeGenerator.Form/frmMain.Designer.vb index 5fc68b4a..3d0ef245 100644 --- a/EnvelopeGenerator.Form/frmMain.Designer.vb +++ b/EnvelopeGenerator.Form/frmMain.Designer.vb @@ -86,6 +86,7 @@ Partial Class frmMain Me.RefreshTimer = New System.Windows.Forms.Timer(Me.components) Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() Me.bbtnitmInfoMail = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.Panel1.SuspendLayout() @@ -291,9 +292,9 @@ Partial Class frmMain Me.RibbonControl.ExpandCollapseItem.Id = 0 Me.RibbonControl.ExpandCollapseItem.ImageOptions.ImageIndex = CType(resources.GetObject("RibbonControl.ExpandCollapseItem.ImageOptions.ImageIndex"), Integer) Me.RibbonControl.ExpandCollapseItem.ImageOptions.LargeImageIndex = CType(resources.GetObject("RibbonControl.ExpandCollapseItem.ImageOptions.LargeImageIndex"), Integer) - Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope, Me.BarButtonItem1, Me.txtRefreshLabel, Me.btnShowDocument, Me.btnContactReceiver, Me.txtEnvelopeIdLabel, Me.btnOpenLogDirectory, Me.BarCheckItem1, Me.bsitmInfo, Me.bbtnitmEB, Me.bbtnitmInfoMail}) + Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope, Me.BarButtonItem1, Me.txtRefreshLabel, Me.btnShowDocument, Me.btnContactReceiver, Me.txtEnvelopeIdLabel, Me.btnOpenLogDirectory, Me.BarCheckItem1, Me.bsitmInfo, Me.bbtnitmEB, Me.bbtnitmInfoMail, Me.BarButtonItem2}) resources.ApplyResources(Me.RibbonControl, "RibbonControl") - Me.RibbonControl.MaxItemId = 16 + Me.RibbonControl.MaxItemId = 17 Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2}) Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] @@ -436,6 +437,7 @@ Partial Class frmMain Me.RibbonPageGroup2.ItemLinks.Add(Me.btnContactReceiver) Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitmInfoMail) Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitmEB) + Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2") ' @@ -605,6 +607,13 @@ Partial Class frmMain Me.bbtnitmInfoMail.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.bbtnitmInfoMail.Name = "bbtnitmInfoMail" ' + 'BarButtonItem2 + ' + resources.ApplyResources(Me.BarButtonItem2, "BarButtonItem2") + Me.BarButtonItem2.Id = 16 + Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage1"), DevExpress.Utils.Svg.SvgImage) + Me.BarButtonItem2.Name = "BarButtonItem2" + ' 'frmMain ' resources.ApplyResources(Me, "$this") @@ -699,4 +708,5 @@ Partial Class frmMain Friend WithEvents SaveFileDialog1 As SaveFileDialog Friend WithEvents bbtnitmEB As DevExpress.XtraBars.BarButtonItem Friend WithEvents bbtnitmInfoMail As DevExpress.XtraBars.BarButtonItem + Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem End Class diff --git a/EnvelopeGenerator.Form/frmMain.resx b/EnvelopeGenerator.Form/frmMain.resx index 335a8ade..8b6ae1b0 100644 --- a/EnvelopeGenerator.Form/frmMain.resx +++ b/EnvelopeGenerator.Form/frmMain.resx @@ -712,7 +712,7 @@
- Info Mail + Support Mail @@ -731,6 +731,28 @@ MS0xLDFIM2MtMC41LDAtMS0wLjUtMS0xVjEwLjNMMTYsMTguM3ogTTI5LDZIM0MyLjUsNiwyLDYuNSwy LDd2MWwxNCw4bDE0LThWNyAgIEMzMCw2LjUsMjkuNSw2LDI5LDZ6IiBjbGFzcz0iQmxhY2siIC8+DQog IDwvZz4NCjwvc3ZnPgs= + + + + BarButtonItem2 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKQCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku + WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLlJlZHtmaWxsOiNEMTFD + MUM7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7Zmls + bDojNzI3MjcyO30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuNzU7fQo8L3N0eWxl + Pg0KICA8ZyBpZD0iTWFpbCI+DQogICAgPHBhdGggZD0iTTE2LDE4LjNsMTQtOFYyNWMwLDAuNS0wLjUs + MS0xLDFIM2MtMC41LDAtMS0wLjUtMS0xVjEwLjNMMTYsMTguM3ogTTI5LDZIM0MyLjUsNiwyLDYuNSwy + LDd2MWwxNCw4bDE0LThWNyAgIEMzMCw2LjUsMjkuNSw2LDI5LDZ6IiBjbGFzcz0iQmxhY2siIC8+DQog + IDwvZz4NCjwvc3ZnPgs= @@ -1485,6 +1507,12 @@ DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + BarButtonItem2 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + frmMain diff --git a/EnvelopeGenerator.Form/frmMain.vb b/EnvelopeGenerator.Form/frmMain.vb index 1ce4b46f..101684e9 100644 --- a/EnvelopeGenerator.Form/frmMain.vb +++ b/EnvelopeGenerator.Form/frmMain.vb @@ -10,6 +10,7 @@ Imports DigitalData.Modules.Base Imports DigitalData.Modules.Logging Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Common.My +Imports System.Diagnostics Public Class frmMain Private ReadOnly LogConfig As LogConfig @@ -507,34 +508,46 @@ Public Class frmMain If ViewEnvelopes.FocusedRowHandle < 0 Then Exit Sub End If + Try + Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle) + Dim oView As GridView = GridEnvelopes.FocusedView + If oView.Name = ViewReceivers.Name Then + Dim oReceiver As EnvelopeReceiver = oView.GetRow(oView.FocusedRowHandle) + Dim oEnvelopeTitle As String = Net.WebUtility.UrlEncode(oEnvelope.Title) + Dim oCode = oReceiver.AccessCode + Dim oUID = oEnvelope.Uuid + + ' E-Mail-Details konfigurieren + Dim mailto As String = "support-flow@digitaldata.works" + Dim subject As String = "signFLOW - Envelope issue" + Dim body As String = $"Dear Digital Data Team,
There is an error or misbehavin with following envelope and Receiver:

Envelope: {oUID}
Receiver: {oReceiver.Email} +

Issue/Description: Please describe the issue in Your own words...

" + + ' URL-encoding für Betreff und Inhalt der E-Mail + 'Dim encodedSubject As String = Uri.EscapeDataString(subject) + 'Dim encodedBody As String = Uri.EscapeDataString(body) + + ' mailto-Link erstellen + Dim mailtoLink As String = $"{mailto}?subject={subject}&body={body}" + Try + Process.Start(mailtoLink) + Catch ex1 As Exception + MsgBox(ex1.Message, MsgBoxStyle.Critical, Text) + End Try + ' E-Mail-Client öffnen + + + Process.Start($"mailto:{oReceiver.Email}?subject={oEnvelopeTitle}") + Else + MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text) + End If + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Critical, Text) + End Try - Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle) - Dim oView As GridView = GridEnvelopes.FocusedView - If oView.Name = ViewReceivers.Name Then - Dim oReceiver As EnvelopeReceiver = oView.GetRow(oView.FocusedRowHandle) - Dim oEnvelopeTitle As String = Net.WebUtility.UrlEncode(oEnvelope.Title) - Dim oCode = oReceiver.AccessCode - Dim oUID = oEnvelope.Uuid - Dim oReceiverLink = oReceiver.G - - ' E-Mail-Details konfigurieren - Dim mailto As String = "support-flow@digitaldata.works" - Dim subject As String = "signFLOW - Envelope issue" - Dim body As String = $"

Dear Digital Data Team,
There is an error or misbehavin with following envelope and Receiver:

Envelope: {oUID}
Error in module

An error occurred in the module. Please check the logs for more details.

" - - ' URL-encoding für Betreff und Inhalt der E-Mail - Dim encodedSubject As String = Uri.EscapeDataString(subject) - Dim encodedBody As String = Uri.EscapeDataString(body) - - ' mailto-Link erstellen - Dim mailtoLink As String = $"{mailto}?subject={encodedSubject}&body={encodedBody}" + End Sub - ' E-Mail-Client öffnen - Process.Start(mailtoLink) + Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick - Process.Start($"mailto:{oReceiver.Email}?subject={oEnvelopeTitle}") - Else - MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text) - End If End Sub End Class \ No newline at end of file From d3ce34ee3109f35f8287a8c9ec39f66ae14aa050 Mon Sep 17 00:00:00 2001 From: Developer01 Date: Wed, 28 Aug 2024 11:14:46 +0200 Subject: [PATCH 3/3] MS TryCatchBlock Finalize Documents For Each --- .../FinalizeDocument/FinalizeDocumentJob.vb | 127 +++++++++--------- 1 file changed, 66 insertions(+), 61 deletions(-) diff --git a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb index 0f7ae28b..9c3abc31 100644 --- a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb +++ b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb @@ -144,76 +144,81 @@ Namespace Jobs For Each oId In oEnvelopeIds Logger.Info("Finalizing Envelope [{0}] ({1}/{2})", oId, oCurrent, oTotal) Logger.Debug("Loading Envelope..") - Dim oEnvelope = EnvelopeModel.GetById(oId) - If oEnvelope Is Nothing Then - Logger.Warn("Envelope could not be loaded for Id [{0}]!", oId) - Throw New ArgumentNullException("EnvelopeData") - End If - Logger.Debug("Loading Envelope Data..") - Dim oEnvelopeData = GetEnvelopeData(oId) + Try + Dim oEnvelope = EnvelopeModel.GetById(oId) + If oEnvelope Is Nothing Then + Logger.Warn("Envelope could not be loaded for Id [{0}]!", oId) + Throw New ArgumentNullException("EnvelopeData") + End If + Logger.Debug("Loading Envelope Data..") + Dim oEnvelopeData = GetEnvelopeData(oId) - If oEnvelopeData Is Nothing Then - Logger.Warn("EnvelopeData could not be loaded for Id [{0}]!", oId) - Throw New ArgumentNullException("EnvelopeData") - End If - If Config.DOCUMENT_PATH_MOVE_AFTSEND <> String.Empty Then - oEnvelopeData.DocumentPath.Replace(Config.DocumentPathOrigin, Config.DOCUMENT_PATH_MOVE_AFTSEND) - Logger.Debug("Replaced Path in oEnvelopeData.DocumentPath!") - End If - Logger.Debug("Burning Annotations to pdf ...") - Dim oBurnedDocument As Byte() = BurnAnnotationsToPdf(oEnvelopeData) - If oBurnedDocument Is Nothing Then - Logger.Warn("Document could not be finalized!") - Throw New ApplicationException("Document could not be finalized") - End If + If oEnvelopeData Is Nothing Then + Logger.Warn("EnvelopeData could not be loaded for Id [{0}]!", oId) + Throw New ArgumentNullException("EnvelopeData") + End If + If Config.DOCUMENT_PATH_MOVE_AFTSEND <> String.Empty Then + oEnvelopeData.DocumentPath.Replace(Config.DocumentPathOrigin, Config.DOCUMENT_PATH_MOVE_AFTSEND) + Logger.Debug("Replaced Path in oEnvelopeData.DocumentPath!") + End If + Logger.Debug("Burning Annotations to pdf ...") + Dim oBurnedDocument As Byte() = BurnAnnotationsToPdf(oEnvelopeData) + If oBurnedDocument Is Nothing Then + Logger.Warn("Document could not be finalized!") + Throw New ApplicationException("Document could not be finalized") + End If - If ActionService.CreateReport(oEnvelope) = False Then - Logger.Warn("Document Report could not be created!") - Throw New ApplicationException("Document Report could not be created") - End If + If ActionService.CreateReport(oEnvelope) = False Then + Logger.Warn("Document Report could not be created!") + Throw New ApplicationException("Document Report could not be created") + End If - Logger.Debug("Creating report..") - Dim oReport As Byte() = ReportCreator.CreateReport(oEnvelope) - Logger.Debug("Report created!") + Logger.Debug("Creating report..") + Dim oReport As Byte() = ReportCreator.CreateReport(oEnvelope) + Logger.Debug("Report created!") - Logger.Debug("Merging documents ...") - Dim oMergedDocument As Byte() = PDFMerger.MergeDocuments(oBurnedDocument, oReport) - Logger.Debug("Documents merged!") + Logger.Debug("Merging documents ...") + Dim oMergedDocument As Byte() = PDFMerger.MergeDocuments(oBurnedDocument, oReport) + Logger.Debug("Documents merged!") - Dim oOutputDirectoryPath = Path.Combine(Config.ExportPath, ParentFolderUID) - If Not Directory.Exists(oOutputDirectoryPath) Then - Directory.CreateDirectory(oOutputDirectoryPath) - End If - Dim oOutputFilePath = Path.Combine(oOutputDirectoryPath, $"{oEnvelope.Uuid}.pdf") - Logger.Info("Writing finalized Pdf to disk..") - Logger.Info("Output path is [{0}]", oOutputFilePath) + Dim oOutputDirectoryPath = Path.Combine(Config.ExportPath, ParentFolderUID) + If Not Directory.Exists(oOutputDirectoryPath) Then + Directory.CreateDirectory(oOutputDirectoryPath) + End If + Dim oOutputFilePath = Path.Combine(oOutputDirectoryPath, $"{oEnvelope.Uuid}.pdf") + Logger.Info("Writing finalized Pdf to disk..") + Logger.Info("Output path is [{0}]", oOutputFilePath) + + Try + File.WriteAllBytes(oOutputFilePath, oMergedDocument) + Catch ex As Exception + Logger.Warn("Could not export final document to disk!") + Throw New ExportDocumentException("Could not export final document to disk!", ex) + End Try + + If Config.NetUse_Finish = True Then + If Config.FINISHED_PATH_EX_DMZ <> String.Empty Then + If My.Settings.NetUse_PW <> String.Empty And My.Settings.NetUse_Usr <> String.Empty Then + Clean_DNZ_PAth(Config.FINISHED_PATH_EX_DMZ) + End If + End If + End If + Logger.Info("Writing EB-bytes to database...") + Update_File_DB(oOutputFilePath, oEnvelope.Id) - Try - File.WriteAllBytes(oOutputFilePath, oMergedDocument) + Logger.Info("Sending finalized report-mails..") + If SendFinalEmails(oEnvelope) = False Then ', oOutputFilePath + 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 Catch ex As Exception - Logger.Warn("Could not export final document to disk!") - Throw New ExportDocumentException("Could not export final document to disk!", ex) + Logger.Warn($"Unhandled exception while working envelope [{oId}] - [{ex.Message}]") End Try - If Config.NetUse_Finish = True Then - If Config.FINISHED_PATH_EX_DMZ <> String.Empty Then - If My.Settings.NetUse_PW <> String.Empty And My.Settings.NetUse_Usr <> String.Empty Then - Clean_DNZ_PAth(Config.FINISHED_PATH_EX_DMZ) - End If - End If - End If - Logger.Info("Writing EB-bytes to database...") - Update_File_DB(oOutputFilePath, oEnvelope.Id) - - Logger.Info("Sending finalized report-mails..") - If SendFinalEmails(oEnvelope) = False Then ', oOutputFilePath - 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!")