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 - 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}
Receiver: {oReceiver.Email} +

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

" - ' 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) - ' 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 - ' 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 + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Critical, Text) + End Try + + End Sub + + 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