diff --git a/EnvelopeGenerator.CommonServices/Services/ActionService.vb b/EnvelopeGenerator.CommonServices/Services/ActionService.vb index bab60075..10df444b 100644 --- a/EnvelopeGenerator.CommonServices/Services/ActionService.vb +++ b/EnvelopeGenerator.CommonServices/Services/ActionService.vb @@ -57,7 +57,9 @@ Public Class ActionService Public Function ResendReceiver(pEnvelope As Domain.Entities.Envelope, pReceiver As Receiver) As Boolean Return EmailService.SendDocumentReceivedEmail(pEnvelope, pReceiver) End Function - + Public Function ManuallySendAccessCode(pEnvelope As Domain.Entities.Envelope, pReceiver As Receiver) As Boolean + Return EmailService.SendDocumentAccessCodeReceivedEmail(pEnvelope, pReceiver) + End Function Public Function DeleteEnvelope(pEnvelope As Domain.Entities.Envelope, pReason As String) As Boolean Dim oStatus As EnvelopeStatus diff --git a/EnvelopeGenerator.CommonServices/Strings/Envelope1.Designer.vb b/EnvelopeGenerator.CommonServices/Strings/Envelope1.Designer.vb index a1b63a9a..e1837814 100644 --- a/EnvelopeGenerator.CommonServices/Strings/Envelope1.Designer.vb +++ b/EnvelopeGenerator.CommonServices/Strings/Envelope1.Designer.vb @@ -325,7 +325,11 @@ Namespace My.Resources Return ResourceManager.GetString("Invitation successfully resend", resourceCulture) End Get End Property - + Public Shared ReadOnly Property AccessCode_successfully_send() As String + Get + Return ResourceManager.GetString("AccessCode successfully send", resourceCulture) + End Get + End Property ''' ''' Sucht eine lokalisierte Zeichenfolge, die Fehlendes Dokument ähnelt. ''' diff --git a/EnvelopeGenerator.Domain/Resources/Model.en.resx b/EnvelopeGenerator.Domain/Resources/Model.en.resx index eaa87da2..d304b4b5 100644 --- a/EnvelopeGenerator.Domain/Resources/Model.en.resx +++ b/EnvelopeGenerator.Domain/Resources/Model.en.resx @@ -132,6 +132,9 @@ Completed + + Completely signed + Contract diff --git a/EnvelopeGenerator.Form/frmMain.Designer.vb b/EnvelopeGenerator.Form/frmMain.Designer.vb index 5afaccae..3a71d5e5 100644 --- a/EnvelopeGenerator.Form/frmMain.Designer.vb +++ b/EnvelopeGenerator.Form/frmMain.Designer.vb @@ -87,6 +87,7 @@ Partial Class frmMain Me.ColHistoryDateCompleted = New DevExpress.XtraGrid.Columns.GridColumn() Me.ViewCompleted = New DevExpress.XtraGrid.Views.Grid.GridView() Me.GridColumn3 = New DevExpress.XtraGrid.Columns.GridColumn() + Me.GridColumn6 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn4 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn5 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn7 = New DevExpress.XtraGrid.Columns.GridColumn() @@ -111,7 +112,8 @@ Partial Class frmMain Me.RefreshTimer = New System.Windows.Forms.Timer(Me.components) Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() Me.XtraSaveFileDialog1 = New DevExpress.XtraEditors.XtraSaveFileDialog(Me.components) - Me.GridColumn6 = New DevExpress.XtraGrid.Columns.GridColumn() + Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() + Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.Panel1.SuspendLayout() @@ -341,9 +343,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.bbtnitm_ResendInvitation, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarStaticItemGhost, Me.bbtnitm2Faktor}) + 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.bbtnitm_ResendInvitation, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarStaticItemGhost, Me.bbtnitm2Faktor, Me.BarButtonItem2}) resources.ApplyResources(Me.RibbonControl, "RibbonControl") - Me.RibbonControl.MaxItemId = 21 + Me.RibbonControl.MaxItemId = 22 Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2}) Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] @@ -510,7 +512,7 @@ Partial Class frmMain ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroupFunctions}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroupFunctions, Me.RibbonPageGroup2}) Me.RibbonPage1.Name = "RibbonPage1" resources.ApplyResources(Me.RibbonPage1, "RibbonPage1") ' @@ -533,9 +535,6 @@ Partial Class frmMain 'RibbonPageGroupFunctions ' Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.btnShowDocument) - Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitm_ResendInvitation) - Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.btnContactReceiver) - Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitm2Faktor) Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitmEB) Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitmInfoMail) Me.RibbonPageGroupFunctions.Name = "RibbonPageGroupFunctions" @@ -677,6 +676,13 @@ Partial Class frmMain Me.GridColumn3.FieldName = "EnvelopeTypeTitle" Me.GridColumn3.Name = "GridColumn3" ' + 'GridColumn6 + ' + resources.ApplyResources(Me.GridColumn6, "GridColumn6") + Me.GridColumn6.FieldName = "Comment" + Me.GridColumn6.MinWidth = 80 + Me.GridColumn6.Name = "GridColumn6" + ' 'GridColumn4 ' resources.ApplyResources(Me.GridColumn4, "GridColumn4") @@ -842,12 +848,21 @@ Partial Class frmMain ' Me.XtraSaveFileDialog1.FileName = "XtraSaveFileDialog1" ' - 'GridColumn6 + 'BarButtonItem2 ' - resources.ApplyResources(Me.GridColumn6, "GridColumn6") - Me.GridColumn6.FieldName = "Comment" - Me.GridColumn6.MinWidth = 80 - Me.GridColumn6.Name = "GridColumn6" + resources.ApplyResources(Me.BarButtonItem2, "BarButtonItem2") + Me.BarButtonItem2.Id = 21 + Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.BarButtonItem2.Name = "BarButtonItem2" + ' + 'RibbonPageGroup2 + ' + Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitm_ResendInvitation) + Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2) + Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitm2Faktor) + Me.RibbonPageGroup2.ItemLinks.Add(Me.btnContactReceiver) + Me.RibbonPageGroup2.Name = "RibbonPageGroup2" + resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2") ' 'frmMain ' @@ -985,4 +1000,6 @@ Partial Class frmMain Friend WithEvents Button1 As Button Friend WithEvents txtEnvID As TextBox Friend WithEvents GridColumn6 As DevExpress.XtraGrid.Columns.GridColumn + Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup End Class diff --git a/EnvelopeGenerator.Form/frmMain.resx b/EnvelopeGenerator.Form/frmMain.resx index 30837731..6f61f049 100644 --- a/EnvelopeGenerator.Form/frmMain.resx +++ b/EnvelopeGenerator.Form/frmMain.resx @@ -746,7 +746,7 @@ - Einladung erneut versenden + Einladung manuell versenden @@ -903,6 +903,28 @@ LjQsMjEuNiwxNCwxNiwxNCAgIGMtNi41LDAtMTAsNS4yLTEwLDljMCw0LDIuMSw2LjUsMi4yLDYuN0M4 LjQsMjkuOSw4LjcsMzAsOSwzMEM5LjIsMzAsOS41LDI5LjksOS43LDI5Ljh6IiBjbGFzcz0iQmxhY2si IC8+DQogIDwvZz4NCjwvc3ZnPgs= + + + + AccessCode manuell versenden + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKQCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku + WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLlJlZHtmaWxsOiNEMTFD + MUM7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7Zmls + bDojNzI3MjcyO30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuNzU7fQo8L3N0eWxl + Pg0KICA8ZyBpZD0iTWFpbCI+DQogICAgPHBhdGggZD0iTTE2LDE4LjNsMTQtOFYyNWMwLDAuNS0wLjUs + MS0xLDFIM2MtMC41LDAtMS0wLjUtMS0xVjEwLjNMMTYsMTguM3ogTTI5LDZIM0MyLjUsNiwyLDYuNSwy + LDd2MWwxNCw4bDE0LThWNyAgIEMzMCw2LjUsMjkuNSw2LDI5LDZ6IiBjbGFzcz0iQmxhY2siIC8+DQog + IDwvZz4NCjwvc3ZnPgs= @@ -917,6 +939,9 @@ Funktionen + + Empfänger + Start @@ -2096,6 +2121,12 @@ DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + GridColumn6 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + GridColumn4 @@ -2144,11 +2175,17 @@ DevExpress.XtraEditors.XtraSaveFileDialog, DevExpress.XtraDialogs.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - GridColumn6 + + BarButtonItem2 - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + RibbonPageGroup2 + + + DevExpress.XtraBars.Ribbon.RibbonPageGroup, 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 1d0b38fc..414ce6fd 100644 --- a/EnvelopeGenerator.Form/frmMain.vb +++ b/EnvelopeGenerator.Form/frmMain.vb @@ -841,4 +841,46 @@ Public Class frmMain .DbConfig = Nothing } End Function + + Private Sub BarButtonItem2_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick + Dim oHandle = SplashScreenManager.ShowOverlayForm(Me) + Try + Dim oView As GridView = GridEnvelopes.FocusedView + Dim selReceiver As Receiver + If oView.Name = ViewReceivers.Name Then + selReceiver = oView.GetRow(oView.FocusedRowHandle) + Else + MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text) + End If + If ViewEnvelopes.FocusedRowHandle < 0 Or IsNothing(selReceiver) Then + Exit Sub + End If + Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle) + If oEnvelope.UseAccessCode = True Then + Dim oController = New EnvelopeEditorController(State, oEnvelope) + Dim Documents As New BindingList(Of EnvelopeDocument) + Dim Receivers As New BindingList(Of Receiver) + Receivers = New BindingList(Of Receiver)(oController.Envelope.Receivers) + For Each oReceiver As Receiver In Receivers + If oReceiver.EmailAddress = selReceiver.EmailAddress Then + If oController.ActionService.ManuallySendAccessCode(oEnvelope, oReceiver) = True Then + Dim oMsg = Resources.Envelope.Invitation_successfully_resend.Replace("@Mail", oReceiver.EmailAddress) + MsgBox(oMsg, MsgBoxStyle.Information, Text) + + End If + End If + Next + Else + MsgBox("Envelope is defined without AccessCode so far!", MsgBoxStyle.Information) + End If + + Catch ex As Exception + Logger.Error(ex) + Finally + + + End Try + SplashScreenManager.CloseOverlayForm(oHandle) + + End Sub End Class \ No newline at end of file