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