From d4c010cda4c41902b5c15c3034816d8ce386ce35 Mon Sep 17 00:00:00 2001 From: MPitz Date: Mon, 11 Sep 2023 12:57:29 +0200 Subject: [PATCH] 2023-09-11 - THUMBNAILS!!!!! --- EnvelopeGenerator.Common/Constants.vb | 4 + EnvelopeGenerator.Common/Entities/Envelope.vb | 2 + .../Entities/EnvelopeDocument.vb | 7 +- .../Models/DocumentModel.vb | 4 + .../Models/EnvelopeModel.vb | 18 +- EnvelopeGenerator.Common/Models/UserModel.vb | 4 +- .../Strings/Envelope.resx | 36 +++ .../Strings/Envelope1.Designer.vb | 108 ++++++++ .../Controllers/BaseController.vb | 4 + .../Controllers/EnvelopeEditorController.vb | 20 +- .../EnvelopeGenerator.Form.vbproj | 18 ++ EnvelopeGenerator.Form/Helper/TempFiles.vb | 58 +++++ EnvelopeGenerator.Form/Helper/Thumbnail.vb | 35 +++ EnvelopeGenerator.Form/Helper/Validator.vb | 41 +++ .../My Project/licenses.licx | 12 +- .../frmEnvelopeEditor.Designer.vb | 85 ++++--- EnvelopeGenerator.Form/frmEnvelopeEditor.resx | 66 +++++ EnvelopeGenerator.Form/frmEnvelopeEditor.vb | 39 ++- .../frmEnvelopeMainData.Designer.vb | 238 ++++++++++++++++++ .../frmEnvelopeMainData.resx | 123 +++++++++ EnvelopeGenerator.Form/frmEnvelopeMainData.vb | 41 +++ .../frmFieldEditor.Designer.vb | 12 +- EnvelopeGenerator.Form/frmFieldEditor.vb | 13 +- EnvelopeGenerator.Form/frmMain.Designer.vb | 18 +- EnvelopeGenerator.Form/frmMain.vb | 24 +- 25 files changed, 947 insertions(+), 83 deletions(-) create mode 100644 EnvelopeGenerator.Form/Helper/TempFiles.vb create mode 100644 EnvelopeGenerator.Form/Helper/Thumbnail.vb create mode 100644 EnvelopeGenerator.Form/Helper/Validator.vb create mode 100644 EnvelopeGenerator.Form/frmEnvelopeMainData.Designer.vb create mode 100644 EnvelopeGenerator.Form/frmEnvelopeMainData.resx create mode 100644 EnvelopeGenerator.Form/frmEnvelopeMainData.vb diff --git a/EnvelopeGenerator.Common/Constants.vb b/EnvelopeGenerator.Common/Constants.vb index 7e2ab1db..7838811d 100644 --- a/EnvelopeGenerator.Common/Constants.vb +++ b/EnvelopeGenerator.Common/Constants.vb @@ -18,4 +18,8 @@ Created = 0 End Enum + Public Enum ContractType + Contract = 0 + ReadAndSign = 1 + End Enum End Class diff --git a/EnvelopeGenerator.Common/Entities/Envelope.vb b/EnvelopeGenerator.Common/Entities/Envelope.vb index 9180e9e8..e42a058f 100644 --- a/EnvelopeGenerator.Common/Entities/Envelope.vb +++ b/EnvelopeGenerator.Common/Entities/Envelope.vb @@ -1,6 +1,8 @@ Public Class Envelope Public Property Id As Integer = 0 Public Property UserId As Integer + Public Property Title As String = "" + Public Property ContractType As Constants.ContractType Public Property Status As Constants.EnvelopeStatus Public Property Uuid As String = Guid.NewGuid.ToString() Public Property Subject As String diff --git a/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb b/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb index 208161a7..7c74e7f5 100644 --- a/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb +++ b/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb @@ -1,14 +1,19 @@ -Imports System.IO +Imports System.Drawing +Imports System.IO Public Class EnvelopeDocument Public Property Id As Integer Public Property FileInfo As FileInfo + Public Property FileNameOriginal As String + Public Property IsTempFile As Boolean = True Public Property EnvelopeId As Integer = 0 + Public Property Thumbnail As Bitmap + Public Property Elements As New List(Of EnvelopeDocumentElement) Public ReadOnly Property Filename As String diff --git a/EnvelopeGenerator.Common/Models/DocumentModel.vb b/EnvelopeGenerator.Common/Models/DocumentModel.vb index df8854eb..f1ed6661 100644 --- a/EnvelopeGenerator.Common/Models/DocumentModel.vb +++ b/EnvelopeGenerator.Common/Models/DocumentModel.vb @@ -20,6 +20,7 @@ Public Class DocumentModel .Id = oDocumentId, .EnvelopeId = pRow.ItemEx("ENVELOPE_ID", 0), .FileInfo = New IO.FileInfo(pRow.ItemEx("FILEPATH", "")), + .FileNameOriginal = pRow.ItemEx("FILENAME_ORIGINAL", ""), .IsTempFile = False, .Elements = ElementModel.List(oDocumentId) } @@ -59,15 +60,18 @@ Public Class DocumentModel Try Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE_DOCUMENT] ([FILENAME] + ,[FILENAME_ORIGINAL] ,[FILEPATH] ,[ENVELOPE_ID]) VALUES (@FILENAME + ,@FILENAME_ORIGINAL ,@FILEPATH ,@ENVELOPE_ID)" Dim oCommand As New SqlCommand(oSql) oCommand.Parameters.Add("FILENAME", SqlDbType.NVarChar).Value = pDocument.Filename + oCommand.Parameters.Add("FILENAME_ORIGINAL", SqlDbType.NVarChar).Value = pDocument.FileNameOriginal oCommand.Parameters.Add("FILEPATH", SqlDbType.NVarChar).Value = pDocument.Filepath oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.Int).Value = pEnvelope.Id diff --git a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb index f5026750..665c3d04 100644 --- a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb +++ b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb @@ -12,6 +12,8 @@ Public Class EnvelopeModel Private Function ToEnvelope(pRow As DataRow) As Envelope Dim oEnvelope = New Envelope() With { .Id = pRow.ItemEx("GUID", 0), + .Title = pRow.ItemEx("TITLE", ""), + .ContractType = ObjectEx.ToEnum(Of Constants.ContractType)(pRow.ItemEx("CONTRACT_TYPE", "Contract")), .Uuid = pRow.ItemEx("ENVELOPE_UUID", ""), .Subject = pRow.ItemEx("SUBJECT", ""), .Message = pRow.ItemEx("MESSAGE", ""), @@ -26,7 +28,7 @@ Public Class EnvelopeModel Public Function GetByUuid(pEnvelopeUuid As String) As Envelope Try Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE ENVELOPE_UUID = '{pEnvelopeUuid}'" - Dim oTable = Database.GetDatatable(oSql) + Dim oTable = Database.GetDatatable(oSql) Return oTable?.Rows.Cast(Of DataRow). Select(AddressOf ToEnvelope). @@ -72,13 +74,16 @@ Public Class EnvelopeModel Public Function Insert(pEnvelope As Envelope) As Boolean Try - Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE] (SUBJECT, MESSAGE, ENVELOPE_UUID, STATUS, USER_ID) VALUES (@SUBJECT, @MESSAGE, @UUID, @STATUS, @USER_ID)" + Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE] (SUBJECT, MESSAGE, ENVELOPE_UUID, STATUS, USER_ID, TITLE, CONTRACT_TYPE) " + oSql += " VALUES (@SUBJECT, @MESSAGE, @UUID, @STATUS, @USER_ID, @TITLE, @CONTRACT_TYPE)" Dim oCommand As New SqlCommand(oSql) oCommand.Parameters.Add("SUBJECT", SqlDbType.NVarChar).Value = String.Empty oCommand.Parameters.Add("MESSAGE", SqlDbType.NVarChar).Value = String.Empty oCommand.Parameters.Add("UUID", SqlDbType.NVarChar).Value = pEnvelope.Uuid oCommand.Parameters.Add("STATUS", SqlDbType.NVarChar).Value = Constants.EnvelopeStatus.Created oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pEnvelope.UserId + oCommand.Parameters.Add("TITLE", SqlDbType.NVarChar).Value = pEnvelope.Title + oCommand.Parameters.Add("CONTRACT_TYPE", SqlDbType.NVarChar).Value = Constants.ContractType.Contract ' TODO - Contract Type If Database.ExecuteNonQuery(oCommand) Then pEnvelope.Id = GetEnvelopeId(pEnvelope) @@ -96,11 +101,18 @@ Public Class EnvelopeModel Public Function Update(pEnvelope As Envelope, pTransaction As SqlTransaction) As Boolean Try - Dim oSql = "UPDATE [dbo].[TBSIG_ENVELOPE] SET [SUBJECT] = @SUBJECT, [MESSAGE] = @MESSAGE, [STATUS] = @STATUS, [CHANGED_WHEN] = GETDATE() WHERE GUID = @ID AND USER_ID = @USER_ID" + Dim oSql = "UPDATE [dbo].[TBSIG_ENVELOPE] SET " + oSql += " [SUBJECT] = @SUBJECT, " + oSql += " [MESSAGE] = @MESSAGE, " + oSql += " [STATUS] = @STATUS, " + oSql += " [TITLE] = @TITLE, " + oSql += " [CHANGED_WHEN] = GETDATE() " + oSql += " WHERE GUID = @ID AND USER_ID = @USER_ID" Dim oCommand As New SqlCommand(oSql) oCommand.Parameters.Add("SUBJECT", SqlDbType.NVarChar).Value = pEnvelope.Subject oCommand.Parameters.Add("MESSAGE", SqlDbType.NVarChar).Value = pEnvelope.Message oCommand.Parameters.Add("STATUS", SqlDbType.NVarChar).Value = pEnvelope.Status + oCommand.Parameters.Add("TITLE", SqlDbType.NVarChar).Value = pEnvelope.Title oCommand.Parameters.Add("ID", SqlDbType.Int).Value = pEnvelope.Id oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pEnvelope.UserId diff --git a/EnvelopeGenerator.Common/Models/UserModel.vb b/EnvelopeGenerator.Common/Models/UserModel.vb index 80e7c539..6c3a0c3e 100644 --- a/EnvelopeGenerator.Common/Models/UserModel.vb +++ b/EnvelopeGenerator.Common/Models/UserModel.vb @@ -25,11 +25,11 @@ Public Class UserModel Public Function SelectUser() As User Try - Dim oSql = $"SELECT * FROM [dbo].[TBDD_USER] WHERE USER_ID = {State.UserId}" + Dim oSql = $"SELECT * FROM [dbo].[TBDD_USER] WHERE GUID = {State.UserId}" Dim oTable = Database.GetDatatable(oSql) Return oTable?.Rows.Cast(Of DataRow). - Select(AddressOf ToUser) + Select(AddressOf ToUser).First Catch ex As Exception Logger.Error(ex) Return Nothing diff --git a/EnvelopeGenerator.Common/Strings/Envelope.resx b/EnvelopeGenerator.Common/Strings/Envelope.resx index 4ceaeb30..dfc74162 100644 --- a/EnvelopeGenerator.Common/Strings/Envelope.resx +++ b/EnvelopeGenerator.Common/Strings/Envelope.resx @@ -117,6 +117,36 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Wollen Sie diesen Umschlag wirklich löschen? + + + Wollen Sie den ausgewählten Empfänger löschen? + + + Dokument konnte nicht gespeichert werden! + + + Elemente konnten nicht geladen werden! + + + Elemente konnten nicht gespeichert werden! + + + Umschlag konnte nicht gesendet werden! + + + Fehler beim Senden des Umschlags: + + + Fehler beim Speichern des Umschlags! + + + Fehler beim Speichern der Empfänger! + + + Fehler beim Speichern des Umschlags: + Empfänger {0} hat keine gültige Email Addresse. @@ -135,4 +165,10 @@ Missing Subject + + Empfänger konnte nicht gelöscht werden! + + + Der Umschlag konnte nicht gelöscht werden! + \ No newline at end of file diff --git a/EnvelopeGenerator.Common/Strings/Envelope1.Designer.vb b/EnvelopeGenerator.Common/Strings/Envelope1.Designer.vb index adfdf707..6eb6244b 100644 --- a/EnvelopeGenerator.Common/Strings/Envelope1.Designer.vb +++ b/EnvelopeGenerator.Common/Strings/Envelope1.Designer.vb @@ -64,6 +64,96 @@ Namespace My.Resources End Set End Property + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Wollen Sie diesen Umschlag wirklich löschen? ähnelt. + ''' + Public Shared ReadOnly Property Do_you_really_want_to_delete_this_envelope() As String + Get + Return ResourceManager.GetString("Do you really want to delete this envelope", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Wollen Sie den ausgewählten Empfänger löschen? ähnelt. + ''' + Public Shared ReadOnly Property Do_you_want_to_delete_the_selected_recipient() As String + Get + Return ResourceManager.GetString("Do you want to delete the selected recipient", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Dokument konnte nicht gespeichert werden! ähnelt. + ''' + Public Shared ReadOnly Property Document_Could_Not_Be_Saved() As String + Get + Return ResourceManager.GetString("Document Could Not Be Saved", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Elemente konnten nicht geladen werden! ähnelt. + ''' + Public Shared ReadOnly Property Elements_could_not_be_loaded() As String + Get + Return ResourceManager.GetString("Elements could not be loaded", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Elemente konnten nicht gespeichert werden! ähnelt. + ''' + Public Shared ReadOnly Property Elements_could_not_be_saved() As String + Get + Return ResourceManager.GetString("Elements could not be saved", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Umschlag konnte nicht gesendet werden! ähnelt. + ''' + Public Shared ReadOnly Property Envelope_could_not_be_sent() As String + Get + Return ResourceManager.GetString("Envelope could not be sent", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Fehler beim Senden des Umschlags: ähnelt. + ''' + Public Shared ReadOnly Property Error_sending_the_envelope() As String + Get + Return ResourceManager.GetString("Error sending the envelope", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Fehler beim Speichern des Umschlags! ähnelt. + ''' + Public Shared ReadOnly Property Error_when_saving_the_envelope() As String + Get + Return ResourceManager.GetString("Error when saving the envelope", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Fehler beim Speichern der Empfänger! ähnelt. + ''' + Public Shared ReadOnly Property Error_when_saving_the_recipients() As String + Get + Return ResourceManager.GetString("Error when saving the recipients", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Fehler beim Speichern des Umschlags: ähnelt. + ''' + Public Shared ReadOnly Property Errors_when_saving_the_envelope() As String + Get + Return ResourceManager.GetString("Errors when saving the envelope", resourceCulture) + End Get + End Property + ''' ''' Sucht eine lokalisierte Zeichenfolge, die Empfänger {0} hat keine gültige Email Addresse. ähnelt. ''' @@ -117,5 +207,23 @@ Namespace My.Resources Return ResourceManager.GetString("Missing Subject", resourceCulture) End Get End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Empfänger konnte nicht gelöscht werden! ähnelt. + ''' + Public Shared ReadOnly Property Recipient_could_not_be_deleted() As String + Get + Return ResourceManager.GetString("Recipient could not be deleted", resourceCulture) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Der Umschlag konnte nicht gelöscht werden! ähnelt. + ''' + Public Shared ReadOnly Property The_envelope_could_not_be_deleted() As String + Get + Return ResourceManager.GetString("The envelope could not be deleted", resourceCulture) + End Get + End Property End Class End Namespace diff --git a/EnvelopeGenerator.Form/Controllers/BaseController.vb b/EnvelopeGenerator.Form/Controllers/BaseController.vb index e409f6e8..87c9077d 100644 --- a/EnvelopeGenerator.Form/Controllers/BaseController.vb +++ b/EnvelopeGenerator.Form/Controllers/BaseController.vb @@ -33,6 +33,10 @@ Public MustInherit Class BaseController End Sub Public Function DeleteEnvelope(pEnvelope As Envelope) As Boolean + If pEnvelope Is Nothing Then + Return True + End If + Dim oConnection As SqlConnection = Database.GetConnection() Dim oTransaction As SqlTransaction = oConnection.BeginTransaction() diff --git a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb index 33c3b68f..7f3851ae 100644 --- a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb +++ b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb @@ -10,10 +10,13 @@ Public Class EnvelopeEditorController Public ReadOnly Envelope As Envelope = Nothing + Public ReadOnly Thumbnail As Thumbnail + Public Sub New(pState As State) MyBase.New(pState) Envelope = CreateEnvelope() + Thumbnail = New Thumbnail(pState.LogConfig) End Sub Public Sub New(pState As State, pEnvelope As Envelope) @@ -22,6 +25,8 @@ Public Class EnvelopeEditorController Envelope = pEnvelope Envelope.Documents = DocumentModel.List(pEnvelope.Id) Envelope.Receivers = ReceiverModel.ListEnvelopeReceivers(pEnvelope.Id) + + Thumbnail = New Thumbnail(pState.LogConfig) End Sub #Region "Public" @@ -103,6 +108,10 @@ Public Class EnvelopeEditorController End Function Public Function CleanupEnvelope() As Boolean + If Envelope Is Nothing Then + Return True + End If + If Envelope.Status = Common.Constants.EnvelopeStatus.Created Then Return DeleteEnvelope(Envelope) Else @@ -113,14 +122,17 @@ Public Class EnvelopeEditorController Public Function CreateDocument(pDocumentFilePath As String) As EnvelopeDocument Try Dim oFileInfo = New FileInfo(pDocumentFilePath) - Dim oTempDirectoryPath = Path.GetTempPath() - Dim oTempFilePath = Path.Combine(oTempDirectoryPath, oFileInfo.Name) - File.Copy(oFileInfo.FullName, oTempFilePath) + Dim oTempFiles As TempFiles = New TempFiles(State.LogConfig) + Dim oTempFilePath = Path.Combine(oTempFiles.TempPath, Guid.NewGuid().ToString + oFileInfo.Extension) + File.Copy(oFileInfo.FullName, oTempFilePath, True) Dim oDocument = New EnvelopeDocument() With { - .FileInfo = New FileInfo(oTempFilePath) + .FileInfo = New FileInfo(oTempFilePath), + .FileNameOriginal = oFileInfo.Name, + .Thumbnail = Thumbnail.GetThumbnailFromPDFFile(oTempFilePath) } + Return oDocument Catch ex As Exception diff --git a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj index dd8a2ffe..5d687b95 100644 --- a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj +++ b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj @@ -41,6 +41,7 @@ EnvelopeGenerator.Form.My.MyApplication + @@ -80,7 +81,12 @@ + + + + + @@ -112,6 +118,12 @@ frmEnvelopeEditor.vb + + frmEnvelopeMainData.vb + + + Form + frmFieldEditor.vb @@ -124,6 +136,9 @@ Form + + + True Application.myapp @@ -133,6 +148,9 @@ frmEnvelopeEditor.vb + + frmEnvelopeMainData.vb + frmFieldEditor.vb diff --git a/EnvelopeGenerator.Form/Helper/TempFiles.vb b/EnvelopeGenerator.Form/Helper/TempFiles.vb new file mode 100644 index 00000000..0fec7af1 --- /dev/null +++ b/EnvelopeGenerator.Form/Helper/TempFiles.vb @@ -0,0 +1,58 @@ +Imports System.IO +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.Logging + +Public Class TempFiles + Inherits BaseClass + + Public Property TempPath As String + + Public Sub New(pLogConfig As LogConfig) + MyBase.New(pLogConfig) + + Dim oTempDirectoryPath = Path.GetTempPath() + TempPath = Path.Combine(oTempDirectoryPath, "EnvelopeGenerator") + End Sub + + Public Function Create() As Boolean + Try + If Directory.Exists(TempPath) = False Then + Directory.CreateDirectory(TempPath) + Else + CleanUpFiles() + End If + Return True + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + + End Function + + Private Function CleanUpFiles() As Boolean + Try + For Each fileItem As String In Directory.GetFiles(TempPath) + File.Delete(fileItem) + Next + + Return True + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function CleanUp() As Boolean + Try + Directory.Delete(TempPath) + Return True + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + +End Class diff --git a/EnvelopeGenerator.Form/Helper/Thumbnail.vb b/EnvelopeGenerator.Form/Helper/Thumbnail.vb new file mode 100644 index 00000000..3eb2163b --- /dev/null +++ b/EnvelopeGenerator.Form/Helper/Thumbnail.vb @@ -0,0 +1,35 @@ +Imports System.ComponentModel +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.Logging +Imports GdPicture14 + +Public Class Thumbnail + Inherits BaseClass + + Dim GDViewer As GdViewer + + Public Sub New(pLogConfig As LogConfig) + MyBase.New(pLogConfig) + + GDViewer = New GdViewer() + Dim oGDPictureKey As String = "21182889975216572111813147150675976632" + + Dim licenseManager As GdPicture14.LicenseManager = New GdPicture14.LicenseManager() + licenseManager.RegisterKEY(oGDPictureKey) + + End Sub + + Public Function GetThumbnailFromPDFFile(pFilePath As String) As Bitmap + Try + GDViewer.DisplayFromFile(pFilePath) + Dim thumbnailBitmap As Bitmap = GDViewer.GetPageThumbnailAsBitmap(1414, 1000, 1, Color.White) + + Return thumbnailBitmap + + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function + +End Class diff --git a/EnvelopeGenerator.Form/Helper/Validator.vb b/EnvelopeGenerator.Form/Helper/Validator.vb new file mode 100644 index 00000000..333db9dc --- /dev/null +++ b/EnvelopeGenerator.Form/Helper/Validator.vb @@ -0,0 +1,41 @@ +Imports DevExpress.Utils.VisualEffects +Imports DevExpress.XtraEditors +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.Logging + +Public Class Validator + Inherits BaseClass + + Public ReadOnly Property AdornerUIManager As AdornerUIManager + + Public Sub New(pLogConfig As LogConfig, pAdornerUIManager As AdornerUIManager) + MyBase.New(pLogConfig) + Me.AdornerUIManager = pAdornerUIManager + End Sub + + + Public Function Validate(pEditor As BaseEdit) As Boolean + With AdornerUIManager.ValidationHintProperties + .State = ValidationHintState.Invalid + .InvalidState.ShowBorder = True + .InvalidState.ShowBackgroundMode = ValidationHintBackgroundMode.Target + End With + + AdornerUIManager.Hide() + AdornerUIManager.Elements.Clear() + + Dim oMissingParams As Boolean = False + + If String.IsNullOrEmpty(pEditor.EditValue) Then + AdornerUIManager.Elements.Add(New ValidationHint With { + .TargetElement = pEditor, + .Visible = True + }) + oMissingParams = True + End If + + AdornerUIManager.Show() + + Return oMissingParams + End Function +End Class diff --git a/EnvelopeGenerator.Form/My Project/licenses.licx b/EnvelopeGenerator.Form/My Project/licenses.licx index 3d8067d5..30be7390 100644 --- a/EnvelopeGenerator.Form/My Project/licenses.licx +++ b/EnvelopeGenerator.Form/My Project/licenses.licx @@ -1,10 +1,12 @@ DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.SearchLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.SearchLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb index a3d8c299..d2b9e13c 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb +++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb @@ -30,9 +30,10 @@ Partial Public Class frmEnvelopeEditor Me.components = New System.ComponentModel.Container() Dim SplashScreenManager1 As DevExpress.XtraSplashScreen.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, Nothing, True, True) Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmEnvelopeEditor)) - Dim TableColumnDefinition2 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() - Dim TableRowDefinition3 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() - Dim TableRowDefinition4 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() + Dim TableColumnDefinition1 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() + Dim TableRowDefinition1 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() + Dim TableRowDefinition2 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() + Dim TileViewItemElement1 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() Dim TileViewItemElement2 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() Me.colFilename = New DevExpress.XtraGrid.Columns.TileViewColumn() Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() @@ -43,6 +44,7 @@ Partial Public Class frmEnvelopeEditor Me.btnSendEnvelope = New DevExpress.XtraBars.BarButtonItem() Me.btnEditFields = New DevExpress.XtraBars.BarButtonItem() Me.btnDeleteReceiver = New DevExpress.XtraBars.BarButtonItem() + Me.btnEditData = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() @@ -70,6 +72,7 @@ Partial Public Class frmEnvelopeEditor Me.FrmEditorBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.EnvelopeDocumentBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog() + Me.colThumbnail = New DevExpress.XtraGrid.Columns.TileViewColumn() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -111,7 +114,7 @@ Partial Public Class frmEnvelopeEditor 'colFilename ' Me.colFilename.Caption = "Dateiname" - Me.colFilename.FieldName = "Filename" + Me.colFilename.FieldName = "FileNameOriginal" Me.colFilename.Name = "colFilename" Me.colFilename.Visible = True Me.colFilename.VisibleIndex = 0 @@ -119,51 +122,51 @@ Partial Public Class frmEnvelopeEditor 'RibbonControl1 ' Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.btnSave, Me.btnCancel, Me.btnNewFile, Me.btnDeleteFile, Me.btnSendEnvelope, Me.btnEditFields, Me.btnDeleteReceiver}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.btnSave, Me.btnCancel, Me.btnNewFile, Me.btnDeleteFile, Me.btnSendEnvelope, Me.btnEditFields, Me.btnDeleteReceiver, Me.btnEditData}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 9 + Me.RibbonControl1.MaxItemId = 10 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.RibbonControl1.Size = New System.Drawing.Size(1164, 158) ' 'btnSave ' - Me.btnSave.Caption = "Save" + Me.btnSave.Caption = "Speichern" Me.btnSave.Id = 1 Me.btnSave.ImageOptions.SvgImage = CType(resources.GetObject("btnSave.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.btnSave.Name = "btnSave" ' 'btnCancel ' - Me.btnCancel.Caption = "Cancel" + Me.btnCancel.Caption = "Abbrechen" Me.btnCancel.Id = 2 Me.btnCancel.ImageOptions.SvgImage = CType(resources.GetObject("btnCancel.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.btnCancel.Name = "btnCancel" ' 'btnNewFile ' - Me.btnNewFile.Caption = "New File" + Me.btnNewFile.Caption = "Neue Datei" Me.btnNewFile.Id = 3 Me.btnNewFile.ImageOptions.SvgImage = CType(resources.GetObject("btnNewFile.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.btnNewFile.Name = "btnNewFile" ' 'btnDeleteFile ' - Me.btnDeleteFile.Caption = "Delete File" + Me.btnDeleteFile.Caption = "Datei löschen" Me.btnDeleteFile.Id = 4 Me.btnDeleteFile.ImageOptions.SvgImage = CType(resources.GetObject("btnDeleteFile.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.btnDeleteFile.Name = "btnDeleteFile" ' 'btnSendEnvelope ' - Me.btnSendEnvelope.Caption = "Send Envelope" + Me.btnSendEnvelope.Caption = "Umschlag senden" Me.btnSendEnvelope.Id = 6 Me.btnSendEnvelope.ImageOptions.SvgImage = CType(resources.GetObject("btnSendEnvelope.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.btnSendEnvelope.Name = "btnSendEnvelope" ' 'btnEditFields ' - Me.btnEditFields.Caption = "Edit Sign Fields" + Me.btnEditFields.Caption = "Signaturfelder bearbeiten" Me.btnEditFields.Id = 7 Me.btnEditFields.ImageOptions.SvgImage = CType(resources.GetObject("btnEditFields.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.btnEditFields.Name = "btnEditFields" @@ -172,46 +175,55 @@ Partial Public Class frmEnvelopeEditor ' Me.btnDeleteReceiver.Caption = "Empfänger löschen" Me.btnDeleteReceiver.Id = 8 + Me.btnDeleteReceiver.ImageOptions.SvgImage = CType(resources.GetObject("btnDeleteReceiver.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.btnDeleteReceiver.Name = "btnDeleteReceiver" ' + 'btnEditData + ' + Me.btnEditData.Caption = "Bearbeite Daten" + Me.btnEditData.Id = 9 + Me.btnEditData.ImageOptions.SvgImage = CType(resources.GetObject("btnEditData.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnEditData.Name = "btnEditData" + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3, Me.RibbonPageGroup4, Me.RibbonPageGroup5}) Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" + Me.RibbonPage1.Text = "Start" ' 'RibbonPageGroup1 ' Me.RibbonPageGroup1.ItemLinks.Add(Me.btnSave) Me.RibbonPageGroup1.ItemLinks.Add(Me.btnCancel) + Me.RibbonPageGroup1.ItemLinks.Add(Me.btnEditData) Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" + Me.RibbonPageGroup1.Text = "Umschlag" ' 'RibbonPageGroup2 ' Me.RibbonPageGroup2.ItemLinks.Add(Me.btnNewFile) Me.RibbonPageGroup2.ItemLinks.Add(Me.btnDeleteFile) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "RibbonPageGroup2" + Me.RibbonPageGroup2.Text = "Dateien" ' 'RibbonPageGroup3 ' Me.RibbonPageGroup3.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far Me.RibbonPageGroup3.ItemLinks.Add(Me.btnSendEnvelope) Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "RibbonPageGroup3" + Me.RibbonPageGroup3.Text = "Prozess" ' 'RibbonPageGroup4 ' Me.RibbonPageGroup4.ItemLinks.Add(Me.btnEditFields) Me.RibbonPageGroup4.Name = "RibbonPageGroup4" - Me.RibbonPageGroup4.Text = "RibbonPageGroup4" + Me.RibbonPageGroup4.Text = "Signaturen" ' 'RibbonPageGroup5 ' Me.RibbonPageGroup5.ItemLinks.Add(Me.btnDeleteReceiver) Me.RibbonPageGroup5.Name = "RibbonPageGroup5" - Me.RibbonPageGroup5.Text = "RibbonPageGroup5" + Me.RibbonPageGroup5.Text = "Empfänger" ' 'SplitContainerControl1 ' @@ -246,21 +258,27 @@ Partial Public Class frmEnvelopeEditor ' 'ViewDocuments ' - Me.ViewDocuments.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colFilename}) + Me.ViewDocuments.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colFilename, Me.colThumbnail}) Me.ViewDocuments.GridControl = Me.GridDocuments Me.ViewDocuments.Name = "ViewDocuments" Me.ViewDocuments.OptionsTiles.ItemSize = New System.Drawing.Size(248, 202) - Me.ViewDocuments.TileColumns.Add(TableColumnDefinition2) - TableRowDefinition3.Length.Value = 152.0R - TableRowDefinition4.Length.Value = 34.0R - Me.ViewDocuments.TileRows.Add(TableRowDefinition3) - Me.ViewDocuments.TileRows.Add(TableRowDefinition4) - TileViewItemElement2.Column = Me.colFilename + Me.ViewDocuments.TileColumns.Add(TableColumnDefinition1) + TableRowDefinition1.Length.Value = 152.0R + TableRowDefinition2.Length.Value = 34.0R + Me.ViewDocuments.TileRows.Add(TableRowDefinition1) + Me.ViewDocuments.TileRows.Add(TableRowDefinition2) + TileViewItemElement1.Column = Me.colFilename + TileViewItemElement1.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement1.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze + TileViewItemElement1.RowIndex = 1 + TileViewItemElement1.Text = "colFilename" + TileViewItemElement1.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement2.Column = Me.colThumbnail TileViewItemElement2.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter TileViewItemElement2.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze - TileViewItemElement2.RowIndex = 1 - TileViewItemElement2.Text = "colFilename" + TileViewItemElement2.Text = "colThumbnail" TileViewItemElement2.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + Me.ViewDocuments.TileTemplate.Add(TileViewItemElement1) Me.ViewDocuments.TileTemplate.Add(TileViewItemElement2) ' 'SplitContainerControl2 @@ -422,6 +440,14 @@ Partial Public Class frmEnvelopeEditor Me.OpenFileDialog1.FileName = "OpenFileDialog1" Me.OpenFileDialog1.Filter = "PDF Files|*.pdf" ' + 'colThumbnail + ' + Me.colThumbnail.Caption = "Thumbnail" + Me.colThumbnail.FieldName = "Thumbnail" + Me.colThumbnail.Name = "colThumbnail" + Me.colThumbnail.Visible = True + Me.colThumbnail.VisibleIndex = 1 + ' 'frmEnvelopeEditor ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -429,9 +455,10 @@ Partial Public Class frmEnvelopeEditor Me.ClientSize = New System.Drawing.Size(1164, 684) Me.Controls.Add(Me.SplitContainerControl1) Me.Controls.Add(Me.RibbonControl1) + Me.IconOptions.SvgImage = CType(resources.GetObject("frmEnvelopeEditor.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.Name = "frmEnvelopeEditor" Me.Ribbon = Me.RibbonControl1 - Me.Text = "Form1" + Me.Text = "Sign Flow - Umschlag-Editor" CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainerControl1.Panel1.ResumeLayout(False) @@ -505,6 +532,8 @@ Partial Public Class frmEnvelopeEditor Friend WithEvents FrmEditorBindingSource As BindingSource Friend WithEvents btnDeleteReceiver As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageGroup5 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents btnEditData As DevExpress.XtraBars.BarButtonItem + Friend WithEvents colThumbnail As DevExpress.XtraGrid.Columns.TileViewColumn #End Region diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.resx b/EnvelopeGenerator.Form/frmEnvelopeEditor.resx index a137ca30..92edf410 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeEditor.resx +++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.resx @@ -231,6 +231,54 @@ OC04TDI5LDE5eiBNMzAsMThsMS43LTEuN2MwLjQtMC40LDAuNC0xLDAtMS4zbC0yLjctMi43Yy0wLjQt MC40LTEtMC40LTEuMywwTDI2LDE0TDMwLDE4eiAgIE0xNiwyNHY0aDRMMTYsMjR6IiBjbGFzcz0iQmx1 ZSIgLz4NCjwvc3ZnPgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALMCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRlbGV0ZUNpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0x + Niw0QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHog + TTIzLjEsMjAuMmwtMi44LDIuOEwxNiwxOC44bC00LjIsNC4yICAgbC0yLjgtMi44bDQuMi00LjJsLTQu + Mi00LjJsMi44LTIuOGw0LjIsNC4ybDQuMi00LjJsMi44LDIuOEwxOC44LDE2TDIzLjEsMjAuMnoiIGNs + YXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ + LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3 + RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh + Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm + aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lXzFfIj4NCiAgICA8 + cGF0aCBkPSJNMi4xLDE2aDIuMmwwLjYtMi4zaDMuMkw4LjgsMTZIMTFMNy44LDZINS40TDIuMSwxNnog + TTYuNCw4LjdjMC4xLTAuMywwLjEtMC42LDAuMS0wLjloMC4xICAgYzAsMC4zLDAuMSwwLjYsMC4xLDAu + OWwxLDMuM0g1LjRMNi40LDguN3ogTTE3LjUsMTAuNmMwLjYtMC4yLDEuMS0wLjUsMS41LTAuOWMwLjQt + MC40LDAuNi0wLjksMC42LTEuNGMwLTAuNy0wLjMtMS4zLTAuOS0xLjcgICBDMTguMSw2LjIsMTcuMSw2 + LDE1LjksNkgxMnY5LjlWMTZoNGMxLjIsMCwyLjItMC4yLDIuOS0wLjhDMTkuNywxNC42LDIwLDE0LDIw + LDEzYzAtMC42LTAuMi0xLjItMC43LTEuNiAgIEMxOC45LDExLDE4LjMsMTAuNywxNy41LDEwLjZ6IE0x + NC40LDcuN2gwLjljMS4xLDAsMS43LDAuNCwxLjcsMS4xYzAsMC40LTAuMSwwLjctMC40LDAuOUMxNi40 + LDkuOSwxNiwxMCwxNS41LDEwaC0xLjFWNy43eiAgICBNMTcsMTMuOGMtMC4zLDAuMi0wLjgsMC40LTEu + MywwLjRoLTEuM3YtMi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAu + NSwwLjlDMTcuNSwxMy4zLDE3LjQsMTMuNiwxNywxMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxw + YXRoIGQ9Ik0yNywxOWwtOCw4bC00LTRsOC04TDI3LDE5eiBNMjgsMThsMS43LTEuN2MwLjQtMC40LDAu + NC0xLDAtMS4zTDI3LDEyLjNjLTAuNC0wLjQtMS0wLjQtMS4zLDBMMjQsMTRMMjgsMTh6ICAgIE0xNCwy + NHY0aDRMMTQsMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw== @@ -245,4 +293,22 @@ 196, 17 + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHECAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkVudmVsb3BlT3BlbiI+DQogICAgPHBhdGggZD0iTTE2 + LDRMNCwxMnYxNWMwLDAuNSwwLjUsMSwxLDFoMjJjMC41LDAsMS0wLjUsMS0xVjEyTDE2LDR6IE0yNiwx + My4xbC0xMCw2LjdMNiwxMy4xdjBsMTAtNi43TDI2LDEzLjEgICBMMjYsMTMuMXoiIGNsYXNzPSJZZWxs + b3ciIC8+DQogIDwvZz4NCjwvc3ZnPgs= + + \ No newline at end of file diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb index 120de1ae..71547c2e 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb +++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb @@ -1,9 +1,8 @@ Imports System.ComponentModel -Imports System.Threading.Tasks -Imports DevExpress.XtraBars.Docking Imports DevExpress.XtraSplashScreen Imports DigitalData.Modules.Logging Imports EnvelopeGenerator.Common +Imports EnvelopeGenerator.Common.My Partial Public Class frmEnvelopeEditor Public Property Envelope As Envelope @@ -26,7 +25,7 @@ Partial Public Class frmEnvelopeEditor If oDocument IsNot Nothing Then Documents.Add(oDocument) Else - MsgBox("Dokument konnte nicht gespeichert werden!", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.Document_Could_Not_Be_Saved, MsgBoxStyle.Critical, Text) End If End If End Sub @@ -36,6 +35,16 @@ Partial Public Class frmEnvelopeEditor If Envelope Is Nothing Then Controller = New EnvelopeEditorController(State) + + ' Get additional data + Dim oDataForm As New frmEnvelopeMainData() With {.State = State} + Dim oResult As DialogResult = oDataForm.ShowDialog() + If oResult = DialogResult.OK Then + Controller.Envelope.Title = oDataForm.EnvelopeTitle + Controller.Envelope.ContractType = oDataForm.EnvelopeContractType + Else + Me.Close() + End If Else Controller = New EnvelopeEditorController(State, Envelope) Documents = New BindingList(Of EnvelopeDocument)(Controller.Envelope.Documents) @@ -129,17 +138,17 @@ Partial Public Class frmEnvelopeEditor Dim oErrors = oEnvelope.Validate() If oErrors.Any Then - ShowValidationErrors("Fehler beim Speichern des Umschlags: ", oErrors) + ShowValidationErrors(Resources.Envelope.Errors_when_saving_the_envelope, oErrors) Return False End If If Controller.CreateEnvelopeReceivers(oEnvelope.Receivers) = False Then - MsgBox("Fehler beim Speichern der Empfänger!", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.Error_when_saving_the_recipients, MsgBoxStyle.Critical, Text) Return False End If If Controller.SaveEnvelope() = False Then - MsgBox("Fehler beim Speichern des Umschlags!", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.Error_when_saving_the_envelope, MsgBoxStyle.Critical, Text) Return False Else Return True @@ -162,7 +171,7 @@ Partial Public Class frmEnvelopeEditor Exit Sub End If - Dim oMessage = "Wollen Sie den ausgewählten Empfänger löschen?" + Dim oMessage = Resources.Envelope.Do_you_want_to_delete_the_selected_recipient If Controller.ElementsExist(oReceiver.Id) Then oMessage = "Es gibt für diesen Empfänger bereits Elemente. Wollen Sie den Empfänger trotzdem löschen?" End If @@ -174,7 +183,7 @@ Partial Public Class frmEnvelopeEditor If Controller.DeleteReceiver(oReceiver) Then Receivers.Remove(oReceiver) Else - MsgBox("Empfänger konnte nicht entfernt werden.", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.Recipient_could_not_be_deleted, MsgBoxStyle.Critical, Text) End If End Sub @@ -186,16 +195,26 @@ Partial Public Class frmEnvelopeEditor Dim oErrors = Controller.ValidateEnvelopeForSending() If oErrors.Any() Then - ShowValidationErrors("Fehler beim Senden des Umschlags: ", oErrors) + ShowValidationErrors(Resources.Envelope.Error_sending_the_envelope, oErrors) Exit Sub End If If Controller.SendEnvelope() = False Then - MsgBox("Umschlag konnte nicht gesendet werden!", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.Envelope_could_not_be_sent, MsgBoxStyle.Critical, Text) End If End Sub Private Sub btnCancel_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnCancel.ItemClick End Sub + + Private Sub btnEditData_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnEditData.ItemClick + Dim oForm As New frmEnvelopeMainData() With + { + .State = State, + .EnvelopeTitle = Controller.Envelope.Title, + .EnvelopeContractType = Controller.Envelope.ContractType + } + oForm.ShowDialog() + End Sub End Class diff --git a/EnvelopeGenerator.Form/frmEnvelopeMainData.Designer.vb b/EnvelopeGenerator.Form/frmEnvelopeMainData.Designer.vb new file mode 100644 index 00000000..53cbd5a9 --- /dev/null +++ b/EnvelopeGenerator.Form/frmEnvelopeMainData.Designer.vb @@ -0,0 +1,238 @@ + +Partial Class frmEnvelopeMainData + Inherits DevExpress.XtraEditors.XtraForm + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() + Me.txtTitle = New DevExpress.XtraEditors.TextEdit() + Me.cmbContractType = New DevExpress.XtraEditors.ComboBoxEdit() + Me.btOK = New DevExpress.XtraEditors.SimpleButton() + Me.btCancel = New DevExpress.XtraEditors.SimpleButton() + Me.Root = New DevExpress.XtraLayout.LayoutControlGroup() + Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() + Me.emptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem() + Me.emptySpaceItem2 = New DevExpress.XtraLayout.EmptySpaceItem() + Me.AdornerUIManager1 = New DevExpress.Utils.VisualEffects.AdornerUIManager(Me.components) + CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.LayoutControl1.SuspendLayout() + CType(Me.txtTitle.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.cmbContractType.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.emptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.emptySpaceItem2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.AdornerUIManager1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'LayoutControl1 + ' + Me.LayoutControl1.Controls.Add(Me.txtTitle) + Me.LayoutControl1.Controls.Add(Me.cmbContractType) + Me.LayoutControl1.Controls.Add(Me.btOK) + Me.LayoutControl1.Controls.Add(Me.btCancel) + Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.LayoutControl1.Location = New System.Drawing.Point(0, 0) + Me.LayoutControl1.Name = "LayoutControl1" + Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(855, 189, 650, 400) + Me.LayoutControl1.Root = Me.Root + Me.LayoutControl1.Size = New System.Drawing.Size(444, 136) + Me.LayoutControl1.TabIndex = 0 + Me.LayoutControl1.Text = "LayoutControl1" + ' + 'txtTitle + ' + Me.txtTitle.Location = New System.Drawing.Point(12, 28) + Me.txtTitle.Name = "txtTitle" + Me.txtTitle.Size = New System.Drawing.Size(420, 20) + Me.txtTitle.StyleController = Me.LayoutControl1 + Me.txtTitle.TabIndex = 4 + ' + 'cmbContractType + ' + Me.cmbContractType.Location = New System.Drawing.Point(12, 71) + Me.cmbContractType.Name = "cmbContractType" + Me.cmbContractType.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.cmbContractType.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor + Me.cmbContractType.Size = New System.Drawing.Size(420, 20) + Me.cmbContractType.StyleController = Me.LayoutControl1 + Me.cmbContractType.TabIndex = 5 + ' + 'btOK + ' + Me.btOK.DialogResult = System.Windows.Forms.DialogResult.OK + Me.btOK.Location = New System.Drawing.Point(286, 98) + Me.btOK.Margin = New System.Windows.Forms.Padding(3, 10, 3, 3) + Me.btOK.Name = "btOK" + Me.btOK.Size = New System.Drawing.Size(66, 23) + Me.btOK.StyleController = Me.LayoutControl1 + Me.btOK.TabIndex = 5 + Me.btOK.Text = "OK" + ' + 'btCancel + ' + Me.btCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.btCancel.Location = New System.Drawing.Point(366, 98) + Me.btCancel.Margin = New System.Windows.Forms.Padding(3, 10, 3, 3) + Me.btCancel.Name = "btCancel" + Me.btCancel.Size = New System.Drawing.Size(66, 23) + Me.btCancel.StyleController = Me.LayoutControl1 + Me.btCancel.TabIndex = 6 + Me.btCancel.Text = "Cancel" + ' + 'Root + ' + Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] + Me.Root.GroupBordersVisible = False + Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3, Me.LayoutControlItem4, Me.emptySpaceItem1, Me.emptySpaceItem2}) + Me.Root.Name = "Root" + Me.Root.Size = New System.Drawing.Size(444, 136) + Me.Root.TextVisible = False + ' + 'LayoutControlItem1 + ' + Me.LayoutControlItem1.Control = Me.txtTitle + Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0) + Me.LayoutControlItem1.Name = "LayoutControlItem1" + Me.LayoutControlItem1.Padding = New DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 5) + Me.LayoutControlItem1.Size = New System.Drawing.Size(424, 43) + Me.LayoutControlItem1.Text = "Titel" + Me.LayoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top + Me.LayoutControlItem1.TextSize = New System.Drawing.Size(57, 13) + ' + 'LayoutControlItem2 + ' + Me.LayoutControlItem2.Control = Me.cmbContractType + Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 43) + Me.LayoutControlItem2.Name = "LayoutControlItem2" + Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 5) + Me.LayoutControlItem2.Size = New System.Drawing.Size(424, 43) + Me.LayoutControlItem2.Text = "Vertragstyp" + Me.LayoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top + Me.LayoutControlItem2.TextSize = New System.Drawing.Size(57, 13) + ' + 'LayoutControlItem3 + ' + Me.LayoutControlItem3.Control = Me.btOK + Me.LayoutControlItem3.ControlAlignment = System.Drawing.ContentAlignment.TopLeft + Me.LayoutControlItem3.CustomizationFormText = "layoutControlItem1" + Me.LayoutControlItem3.Location = New System.Drawing.Point(274, 86) + Me.LayoutControlItem3.MaxSize = New System.Drawing.Size(70, 27) + Me.LayoutControlItem3.MinSize = New System.Drawing.Size(70, 27) + Me.LayoutControlItem3.Name = "LayoutControlItem3" + Me.LayoutControlItem3.Size = New System.Drawing.Size(70, 30) + Me.LayoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom + Me.LayoutControlItem3.Text = "layoutControlItem1" + Me.LayoutControlItem3.TextLocation = DevExpress.Utils.Locations.Left + Me.LayoutControlItem3.TextSize = New System.Drawing.Size(0, 0) + Me.LayoutControlItem3.TextVisible = False + ' + 'LayoutControlItem4 + ' + Me.LayoutControlItem4.Control = Me.btCancel + Me.LayoutControlItem4.ControlAlignment = System.Drawing.ContentAlignment.TopLeft + Me.LayoutControlItem4.CustomizationFormText = "layoutControlItem2" + Me.LayoutControlItem4.Location = New System.Drawing.Point(354, 86) + Me.LayoutControlItem4.MaxSize = New System.Drawing.Size(70, 27) + Me.LayoutControlItem4.MinSize = New System.Drawing.Size(70, 27) + Me.LayoutControlItem4.Name = "LayoutControlItem4" + Me.LayoutControlItem4.Size = New System.Drawing.Size(70, 30) + Me.LayoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom + Me.LayoutControlItem4.Text = "layoutControlItem2" + Me.LayoutControlItem4.TextLocation = DevExpress.Utils.Locations.Left + Me.LayoutControlItem4.TextSize = New System.Drawing.Size(0, 0) + Me.LayoutControlItem4.TextVisible = False + ' + 'emptySpaceItem1 + ' + Me.emptySpaceItem1.AllowHotTrack = False + Me.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1" + Me.emptySpaceItem1.Location = New System.Drawing.Point(344, 86) + Me.emptySpaceItem1.MaxSize = New System.Drawing.Size(10, 27) + Me.emptySpaceItem1.MinSize = New System.Drawing.Size(10, 27) + Me.emptySpaceItem1.Name = "emptySpaceItem1" + Me.emptySpaceItem1.Size = New System.Drawing.Size(10, 30) + Me.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom + Me.emptySpaceItem1.TextSize = New System.Drawing.Size(0, 0) + ' + 'emptySpaceItem2 + ' + Me.emptySpaceItem2.AllowHotTrack = False + Me.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2" + Me.emptySpaceItem2.Location = New System.Drawing.Point(0, 86) + Me.emptySpaceItem2.Name = "emptySpaceItem2" + Me.emptySpaceItem2.Size = New System.Drawing.Size(274, 30) + Me.emptySpaceItem2.TextSize = New System.Drawing.Size(0, 0) + ' + 'AdornerUIManager1 + ' + Me.AdornerUIManager1.Owner = Me + ' + 'frmEnvelopeMainData + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.btCancel + Me.ClientSize = New System.Drawing.Size(444, 136) + Me.Controls.Add(Me.LayoutControl1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.IconOptions.ShowIcon = False + Me.Name = "frmEnvelopeMainData" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Neuer Umschlag" + CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.LayoutControl1.ResumeLayout(False) + CType(Me.txtTitle.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.cmbContractType.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.emptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.emptySpaceItem2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.AdornerUIManager1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl + Friend WithEvents txtTitle As DevExpress.XtraEditors.TextEdit + Friend WithEvents cmbContractType As DevExpress.XtraEditors.ComboBoxEdit + Friend WithEvents btOK As DevExpress.XtraEditors.SimpleButton + Friend WithEvents btCancel As DevExpress.XtraEditors.SimpleButton + Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup + Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents LayoutControlItem4 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents emptySpaceItem1 As DevExpress.XtraLayout.EmptySpaceItem + Friend WithEvents emptySpaceItem2 As DevExpress.XtraLayout.EmptySpaceItem + Friend WithEvents AdornerUIManager1 As DevExpress.Utils.VisualEffects.AdornerUIManager +End Class diff --git a/EnvelopeGenerator.Form/frmEnvelopeMainData.resx b/EnvelopeGenerator.Form/frmEnvelopeMainData.resx new file mode 100644 index 00000000..e6359d03 --- /dev/null +++ b/EnvelopeGenerator.Form/frmEnvelopeMainData.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/EnvelopeGenerator.Form/frmEnvelopeMainData.vb b/EnvelopeGenerator.Form/frmEnvelopeMainData.vb new file mode 100644 index 00000000..ae155e54 --- /dev/null +++ b/EnvelopeGenerator.Form/frmEnvelopeMainData.vb @@ -0,0 +1,41 @@ +Imports System.Runtime.CompilerServices +Imports DevExpress.XtraDashboardLayout +Imports DigitalData.Controls.DocumentViewer +Imports EnvelopeGenerator.Common +Imports EnvelopeGenerator.Common.Constants + +Public Class frmEnvelopeMainData + + Public Property EnvelopeTitle As String + Public Property EnvelopeContractType As ContractType = ContractType.Contract + + Public Property State As State + + Public Sub New() + InitializeComponent() + End Sub + + Private Sub frmEnvelopeMainData_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Dim contractTypeList = [Enum].GetValues(GetType(ContractType)) _ + .Cast(Of ContractType)().ToList() + cmbContractType.Properties.Items.AddRange(contractTypeList) + + txtTitle.EditValue = EnvelopeTitle + cmbContractType.EditValue = EnvelopeContractType + End Sub + + Private Sub btOK_Click(sender As Object, e As EventArgs) Handles btOK.Click + + Dim Validator As Validator = New Validator(State.LogConfig, AdornerUIManager1) + Dim oMissingParams = Validator.Validate(txtTitle) + + If oMissingParams = True Then + Me.DialogResult = DialogResult.None + txtTitle.Focus() + Return + End If + + EnvelopeTitle = txtTitle.EditValue + EnvelopeContractType = cmbContractType.EditValue + End Sub +End Class \ No newline at end of file diff --git a/EnvelopeGenerator.Form/frmFieldEditor.Designer.vb b/EnvelopeGenerator.Form/frmFieldEditor.Designer.vb index cc53bb62..89cc482b 100644 --- a/EnvelopeGenerator.Form/frmFieldEditor.Designer.vb +++ b/EnvelopeGenerator.Form/frmFieldEditor.Designer.vb @@ -116,27 +116,27 @@ ' Me.ribbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.ribbonPageGroup1, Me.RibbonPageGroup3, Me.RibbonPageGroup2}) Me.ribbonPage1.Name = "ribbonPage1" - Me.ribbonPage1.Text = "ribbonPage1" + Me.ribbonPage1.Text = "Start" ' 'ribbonPageGroup1 ' Me.ribbonPageGroup1.ItemLinks.Add(Me.btnSave) - Me.ribbonPageGroup1.ItemLinks.Add(Me.btnDelete) Me.ribbonPageGroup1.Name = "ribbonPageGroup1" - Me.ribbonPageGroup1.Text = "ribbonPageGroup1" + Me.ribbonPageGroup1.Text = "Allgemein" ' 'RibbonPageGroup3 ' Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem2) Me.RibbonPageGroup3.ItemLinks.Add(Me.txtReceiver) Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "RibbonPageGroup3" + Me.RibbonPageGroup3.Text = "Empfänger" ' 'RibbonPageGroup2 ' Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem1) + Me.RibbonPageGroup2.ItemLinks.Add(Me.btnDelete) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "RibbonPageGroup2" + Me.RibbonPageGroup2.Text = "Signaturen" ' 'RepositoryItemComboBox1 ' @@ -217,7 +217,7 @@ Me.Controls.Add(Me.barDockControlTop) Me.Name = "frmFieldEditor" Me.Ribbon = Me.ribbonControl1 - Me.Text = "Form1" + Me.Text = "Sign Flow - Signatur-Editor" CType(Me.ribbonControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PopupMenu1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/EnvelopeGenerator.Form/frmFieldEditor.vb b/EnvelopeGenerator.Form/frmFieldEditor.vb index 8668254d..bfbce01d 100644 --- a/EnvelopeGenerator.Form/frmFieldEditor.vb +++ b/EnvelopeGenerator.Form/frmFieldEditor.vb @@ -1,12 +1,9 @@ -Imports System.Windows.Forms.VisualStyles.VisualStyleElement.Window -Imports DevExpress.Utils -Imports DevExpress.XtraBars -Imports DevExpress.XtraBars.Ribbon.ViewInfo +Imports DevExpress.XtraBars Imports DigitalData.Modules.Logging Imports EnvelopeGenerator.Common +Imports EnvelopeGenerator.Common.My Imports GdPicture14 Imports GdPicture14.Annotations -Imports NLog.Fluent Partial Public Class frmFieldEditor Private LogConfig As LogConfig @@ -58,7 +55,7 @@ Partial Public Class frmFieldEditor Controller = New FieldEditorController(State, Document) If Controller.LoadElements() = False Then - MsgBox("Elemente konnten nicht geladen werden!", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.Elements_could_not_be_loaded, MsgBoxStyle.Critical, Text) Else LoadAnnotations(SelectedReceiver.Id) GDViewer.DisplayFirstPage() @@ -95,7 +92,7 @@ Partial Public Class frmFieldEditor GDViewer.Redraw() TestViewerActionSuccessful("ReceiverItem_Click/Redraw") Else - MsgBox("Elemente konnten nicht gespeichert werden!", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.Elements_could_not_be_saved, MsgBoxStyle.Critical, Text) End If Me.ResumeLayout() @@ -155,7 +152,7 @@ Partial Public Class frmFieldEditor AddElementsToController() If Not Controller.SaveElements(SelectedReceiver.Id) Then - MsgBox("Elemente konnten nicht gespeichert werden!", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.Elements_could_not_be_saved, MsgBoxStyle.Critical, Text) End If UpdateAnnotationTag() diff --git a/EnvelopeGenerator.Form/frmMain.Designer.vb b/EnvelopeGenerator.Form/frmMain.Designer.vb index fe90e9c1..d51afea8 100644 --- a/EnvelopeGenerator.Form/frmMain.Designer.vb +++ b/EnvelopeGenerator.Form/frmMain.Designer.vb @@ -19,8 +19,8 @@ Partial Class frmMain 'Do not modify it using the code editor. Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) Dim SplashScreenManager1 As DevExpress.XtraSplashScreen.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, Nothing, True, True) + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() Me.btnCreateEnvelope = New DevExpress.XtraBars.BarButtonItem() Me.btnEditEnvelope = New DevExpress.XtraBars.BarButtonItem() @@ -35,6 +35,10 @@ Partial Class frmMain CType(Me.ViewEnvelopes, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' + 'SplashScreenManager1 + ' + SplashScreenManager1.ClosingDelay = 500 + ' 'RibbonControl ' Me.RibbonControl.ExpandCollapseItem.Id = 0 @@ -55,7 +59,7 @@ Partial Class frmMain ' 'btnEditEnvelope ' - Me.btnEditEnvelope.Caption = "Lade Umschlag" + Me.btnEditEnvelope.Caption = "Umschlag laden" Me.btnEditEnvelope.Id = 2 Me.btnEditEnvelope.ImageOptions.SvgImage = CType(resources.GetObject("btnEditEnvelope.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.btnEditEnvelope.Name = "btnEditEnvelope" @@ -71,7 +75,7 @@ Partial Class frmMain ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" + Me.RibbonPage1.Text = "Start" ' 'RibbonPageGroup1 ' @@ -79,7 +83,7 @@ Partial Class frmMain Me.RibbonPageGroup1.ItemLinks.Add(Me.btnEditEnvelope) Me.RibbonPageGroup1.ItemLinks.Add(Me.btnDeleteEnvelope) Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" + Me.RibbonPageGroup1.Text = "Funktionen" ' 'RibbonStatusBar ' @@ -104,10 +108,6 @@ Partial Class frmMain Me.ViewEnvelopes.GridControl = Me.GridEnvelopes Me.ViewEnvelopes.Name = "ViewEnvelopes" ' - 'SplashScreenManager1 - ' - SplashScreenManager1.ClosingDelay = 500 - ' 'frmMain ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -119,7 +119,7 @@ Partial Class frmMain Me.Name = "frmMain" Me.Ribbon = Me.RibbonControl Me.StatusBar = Me.RibbonStatusBar - Me.Text = "frmMain" + Me.Text = "Sign Flow" CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridEnvelopes, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.ViewEnvelopes, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/EnvelopeGenerator.Form/frmMain.vb b/EnvelopeGenerator.Form/frmMain.vb index a73510c6..40fcd687 100644 --- a/EnvelopeGenerator.Form/frmMain.vb +++ b/EnvelopeGenerator.Form/frmMain.vb @@ -1,11 +1,12 @@ -Imports System.Diagnostics.Eventing.Reader +Imports System.IO +Imports DevExpress.XtraSplashScreen +Imports DigitalData.GUIs.Common +Imports DigitalData.Modules.Base Imports DigitalData.Modules.Config Imports DigitalData.Modules.Database Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Base -Imports DigitalData.GUIs.Common Imports EnvelopeGenerator.Common -Imports DevExpress.XtraSplashScreen +Imports EnvelopeGenerator.Common.My Public Class frmMain Private LogConfig As LogConfig @@ -13,6 +14,7 @@ Public Class frmMain Private Database As MSSQLServer Private ConfigManager As ConfigManager(Of Config) Private DbConfig As DbConfig + Private TempFiles As TempFiles Private GridBuilder As GridBuilder @@ -24,6 +26,9 @@ Public Class frmMain LogConfig = New LogConfig(LogConfig.PathType.CustomPath, oLogPath, CompanyName:="Digital Data", ProductName:="Envelope Generator") Logger = LogConfig.GetLogger() + TempFiles = New TempFiles(LogConfig) + TempFiles.Create() + Try ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath) Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString) @@ -53,7 +58,6 @@ Public Class frmMain GridEnvelopes.DataSource = Controller.ListEnvelopes() - Catch ex As Exception Logger.Error(ex) End Try @@ -80,6 +84,7 @@ Public Class frmMain Dim oForm As New frmEnvelopeEditor() With {.State = State} oForm.ShowDialog() GridEnvelopes.DataSource = Controller.ListEnvelopes() + Catch ex As Exception Logger.Error(ex) Finally @@ -104,14 +109,14 @@ Public Class frmMain Private Sub DeleteEnvelope(pRowHandle As Integer) Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(pRowHandle) - If MsgBox("Wollen Sie diesen Umschlag wirklich löschen?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.No Then + If MsgBox(Resources.Envelope.Do_you_really_want_to_delete_this_envelope, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.No Then Exit Sub End If If Controller.DeleteEnvelope(oEnvelope) Then GridEnvelopes.DataSource = Controller.ListEnvelopes() Else - MsgBox("Umschlag konnte nicht gelöscht werden!", MsgBoxStyle.Critical, Text) + MsgBox(Resources.Envelope.The_envelope_could_not_be_deleted, MsgBoxStyle.Critical, Text) End If End Sub @@ -128,4 +133,9 @@ Public Class frmMain DeleteEnvelope(oSelectedRows.First) End If End Sub + + Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing + ' Cleanup Methods + TempFiles.CleanUp() + End Sub End Class \ No newline at end of file