diff --git a/EnvelopeGenerator.Common/Entities/Envelope.vb b/EnvelopeGenerator.Common/Entities/Envelope.vb index c30d7525..4f83ae87 100644 --- a/EnvelopeGenerator.Common/Entities/Envelope.vb +++ b/EnvelopeGenerator.Common/Entities/Envelope.vb @@ -31,6 +31,7 @@ Public Property Receivers As New List(Of EnvelopeReceiver) Public Property History As New List(Of EnvelopeHistoryEntry) Public Property EnvelopeType As EnvelopeType + Public Property DOC_RESULT As Byte() Public ReadOnly Property EnvelopeTypeTitle As String Get diff --git a/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb b/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb index 077e88a5..631e88f5 100644 --- a/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb +++ b/EnvelopeGenerator.Common/Entities/EnvelopeDocument.vb @@ -19,4 +19,5 @@ Public Class EnvelopeDocument Public Property Filepath As String Public Property PageCount As Integer + Public Property Byte_Data As Byte() End Class \ No newline at end of file diff --git a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb index 9b4feb68..c5c3865d 100644 --- a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb +++ b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb @@ -16,6 +16,8 @@ Imports DevExpress.Pdf.Native.BouncyCastle.Asn1.Cms Imports DevExpress.DataAccess.Sql Imports DevExpress.DataProcessing Imports Quartz.Logging.OperationName +Imports System.Data.SqlClient +Imports System.Windows.Forms Namespace Jobs Public Class FinalizeDocumentJob @@ -46,6 +48,7 @@ Namespace Jobs Public EnvelopeId As Integer Public DocumentPath As String Public AnnotationData As List(Of String) + Public DocAsByte As Byte() End Class @@ -86,6 +89,7 @@ Namespace Jobs Logger.Debug("My.Settings.RuninDMZ: [{0}]", My.Settings.RuninDMZ.ToString) Logger.Debug("My.Settings.NetUse_Usr: [{0}]", My.Settings.NetUse_Usr) + If My.Settings.RuninDMZ = True Then If Config.DocumentPath_DMZ <> String.Empty Then Logger.Debug("RuninDMZ - Using DocumentPath_DMZ: [{0}] - Overwrite Document-Path", Config.DocumentPath_DMZ) @@ -126,7 +130,7 @@ Namespace Jobs End If Dim oCompleteStatus As Integer = Constants.EnvelopeStatus.EnvelopeCompletelySigned - Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE WHERE STATUS = {oCompleteStatus} AND DATEDIFF(minute, CHANGED_WHEN, GETDATE()) >= {CompleteWaitTime}" + Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE WHERE STATUS = {oCompleteStatus} AND DATEDIFF(minute, CHANGED_WHEN, GETDATE()) >= {CompleteWaitTime} ORDER BY GUID" Dim oTable = Database.GetDatatable(oSql) Dim oEnvelopeIds As List(Of Integer) = oTable.Rows.Cast(Of DataRow). @@ -142,22 +146,16 @@ Namespace Jobs Dim oCurrent As Integer = 1 For Each oId In oEnvelopeIds - Logger.Info("Finalizing Envelope [{0}] ({1}/{2})", oId, oCurrent, oTotal) - Logger.Debug("Loading Envelope..") Dim oEnvelope = EnvelopeModel.GetById(oId) - If oEnvelope Is Nothing Then Logger.Warn("Envelope could not be loaded for Id [{0}]!", oId) Throw New ArgumentNullException("EnvelopeData") End If - Logger.Debug("Loading Envelope Data..") Dim oEnvelopeData = GetEnvelopeData(oId) - - If oEnvelopeData Is Nothing Then Logger.Warn("EnvelopeData could not be loaded for Id [{0}]!", oId) Throw New ArgumentNullException("EnvelopeData") @@ -201,35 +199,21 @@ Namespace Jobs Throw New ExportDocumentException("Could not export final document to disk!", ex) End Try - - If Config.NetUse_Finish = True Then If Config.FINISHED_PATH_EX_DMZ <> String.Empty Then If My.Settings.NetUse_PW <> String.Empty And My.Settings.NetUse_Usr <> String.Empty Then Clean_DNZ_PAth(Config.FINISHED_PATH_EX_DMZ) - 'Dim oReturnPath = MoveFileWithNetUse(Config.FINISHED_PATH_EX_DMZ, oOutputFilePath, My.Settings.NetUse_Usr, My.Settings.NetUse_PW) - 'If oReturnPath <> String.Empty Then - ' oOutputFilePath = oReturnPath - ' If Config.EML_PATH_EX_DMZ <> String.Empty Then - ' Logger.Debug($"Now replacing [{Config.FINISHED_PATH_EX_DMZ}] with ") - ' Logger.Debug($"............. [{Config.EML_PATH_EX_DMZ}] ") - ' oOutputFilePath = oOutputFilePath.Replace(Config.FINISHED_PATH_EX_DMZ, Config.EML_PATH_EX_DMZ) - ' Logger.Debug($"oOutputFilePath [{oOutputFilePath}] ") - ' End If - 'Else - ' Logger.Info($"Exiting/Aborting FinalizeDocuments!") - ' Return Task.FromResult(False) - 'End If + End If End If End If + Logger.Info("Writing EB-bytes to database...") + Update_File_DB(oOutputFilePath, oEnvelope.Id) Logger.Info("Sending finalized report-mails..") - If SendFinalEmails(oEnvelope, oOutputFilePath) = False Then Throw New ApplicationException("Final emails could not be sent!") End If - Logger.Debug("Setting envelope status..") If ActionService.FinalizeEnvelope(oEnvelope) = False Then Logger.Warn("Envelope could not be finalized!") @@ -259,6 +243,50 @@ Namespace Jobs Return Task.FromResult(True) End Function + Private Sub Update_File_DB(pFilePath As String, pEnvelopeID As Long) + Dim SqlCom As SqlCommand + Dim imageData As Byte() + Dim sFileName As String + Dim qry As String + + Try + 'Read Image Bytes into a byte array + 'Initialize SQL Server Connection + + 'Convert File to bytes Array + imageData = ReadFile(pFilePath) + If Not IsNothing(imageData) Then + sFileName = System.IO.Path.GetFileName(pFilePath) + 'Set insert query + qry = $"UPDATE TBSIG_ENVELOPE SET DOC_RESULT = @ImageData WHERE GUID = {pEnvelopeID}" + 'Initialize SqlCommand object for insert. + SqlCom = New SqlCommand(qry, Database.GetConnection) + 'We are passing File Name and Image byte data as sql parameters. + SqlCom.Parameters.Add(New SqlParameter("@ImageData", DirectCast(imageData, Object))) + 'Execute the Query + SqlCom.ExecuteNonQuery() + End If + + Catch ex As Exception + Logger.Error(ex) + End Try + End Sub + 'Open file in to a filestream and read data in a byte array. + Private Function ReadFile(ByVal sPath As String) As Byte() + 'Initialize byte array with a null value initially. + Dim data As Byte() = Nothing + 'Use FileInfo object to get file size. + Dim fInfo As New FileInfo(sPath) + Dim numBytes As Long = fInfo.Length + 'Open FileStream to read file + Dim fStream As New FileStream(sPath, FileMode.Open, FileAccess.Read) + 'Use BinaryReader to read file stream into byte array. + Dim br As New BinaryReader(fStream) + 'When you use BinaryReader, you need to supply number of bytes to read from file. + 'In this case we want to read entire file. So supplying total number of bytes. + data = br.ReadBytes(CInt(numBytes)) + Return data + End Function Private Function NetUse_Command(pDestinationPath As String, pUsername As String, pPassword As String) Dim oDectryptedPW = Helpers.Decrypt(My.Settings.NetUse_PW) Dim netUseCommand As String = $"net use {pDestinationPath} /user:{pUsername} {oDectryptedPW}" @@ -400,7 +428,7 @@ Namespace Jobs End Function Private Function GetEnvelopeData(pEnvelopeId As Integer) As EnvelopeData - Dim oSql = $"SELECT T.GUID, T2.FILEPATH FROM [dbo].[TBSIG_ENVELOPE] T + Dim oSql = $"SELECT T.GUID, T2.FILEPATH, T2.BYTE_DATA FROM [dbo].[TBSIG_ENVELOPE] T JOIN TBSIG_ENVELOPE_DOCUMENT T2 ON T.GUID = T2.ENVELOPE_ID WHERE T.GUID = {pEnvelopeId}" Dim oTable As DataTable = Database.GetDatatable(oSql) diff --git a/EnvelopeGenerator.Common/Models/DocumentModel.vb b/EnvelopeGenerator.Common/Models/DocumentModel.vb index 68b78672..593988e2 100644 --- a/EnvelopeGenerator.Common/Models/DocumentModel.vb +++ b/EnvelopeGenerator.Common/Models/DocumentModel.vb @@ -24,7 +24,8 @@ Public Class DocumentModel .Filepath = pRow.ItemEx("FILEPATH", ""), .FileNameOriginal = pRow.ItemEx("FILENAME_ORIGINAL", ""), .IsTempFile = False, - .Elements = ElementModel.List(oDocumentId, pReceiverId) + .Elements = ElementModel.List(oDocumentId, pReceiverId), + .Byte_Data = DirectCast(pRow.Item("BYTE_DATA"), Byte()) } End Function @@ -79,18 +80,21 @@ Public Class DocumentModel ([FILENAME] ,[FILENAME_ORIGINAL] ,[FILEPATH] - ,[ENVELOPE_ID]) + ,[ENVELOPE_ID] + ,[BYTE_DATA]) VALUES (@FILENAME ,@FILENAME_ORIGINAL ,@FILEPATH - ,@ENVELOPE_ID)" + ,@ENVELOPE_ID + ,@BYTE_DATA)" 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 + oCommand.Parameters.Add(New SqlParameter("@BYTE_DATA", DirectCast(pDocument.Byte_Data, Object))) If Database.ExecuteNonQuery(oCommand, pTransaction) Then pDocument.EnvelopeId = pEnvelope.Id diff --git a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb index fbef1755..21449100 100644 --- a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb +++ b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb @@ -47,7 +47,24 @@ Public Class EnvelopeModel .FinalEmailToCreator = ObjectEx.ToEnum(Of Constants.FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_CREATOR", Constants.FinalEmailType.No.ToString())), .FinalEmailToReceivers = ObjectEx.ToEnum(Of Constants.FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_RECEIVERS", Constants.FinalEmailType.No.ToString())) } - + Dim oDoc1 = pRow.Item("DOC1") + If Not IsDBNull(oDoc1) Then + Dim oByte As Byte() = DirectCast(pRow.Item("DOC1"), Byte()) + If Not IsNothing(oByte) Then + oEnvelope.Doc1 = oByte + End If + Else + oEnvelope.Doc1 = Nothing + End If + Dim oDOC_RESULT = pRow.Item("DOC_RESULT") + If Not IsDBNull(oDOC_RESULT) Then + Dim oByte As Byte() = DirectCast(pRow.Item("DOC_RESULT"), Byte()) + If Not IsNothing(oByte) Then + oEnvelope.DOC_RESULT = oByte + End If + Else + oEnvelope.DOC_RESULT = Nothing + End If oEnvelope.User = UserModel.SelectUser(oEnvelope.UserId) oEnvelope.Receivers = ReceiverModel.ListEnvelopeReceivers(oEnvelope.Id) oEnvelope.Documents = DocumentModel.List(oEnvelope.Id) diff --git a/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb b/EnvelopeGenerator.Common/My Project/AssemblyInfo.vb index 4e19c511..4dccea27 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.Form/Controllers/EnvelopeEditorController.vb b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb index 9491a8cd..c5e3044f 100644 --- a/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb +++ b/EnvelopeGenerator.Form/Controllers/EnvelopeEditorController.vb @@ -164,7 +164,8 @@ Public Class EnvelopeEditorController .Filepath = oFileInfoTemp.FullName, .FileNameOriginal = oFileInfo.Name, .Thumbnail = Thumbnail.GetThumbnailFromPDFFile(oTempFilePath), - .PageCount = Thumbnail.GetPageCount(oTempFilePath) + .PageCount = Thumbnail.GetPageCount(oTempFilePath), + .Byte_Data = ReadFile(pDocumentFilePath) } Return oDocument @@ -174,7 +175,22 @@ Public Class EnvelopeEditorController Return Nothing End Try End Function - + 'Open file in to a filestream and read data in a byte array. + Private Function ReadFile(ByVal sPath As String) As Byte() + 'Initialize byte array with a null value initially. + Dim data As Byte() = Nothing + 'Use FileInfo object to get file size. + Dim fInfo As New FileInfo(sPath) + Dim numBytes As Long = fInfo.Length + 'Open FileStream to read file + Dim fStream As New FileStream(sPath, FileMode.Open, FileAccess.Read) + 'Use BinaryReader to read file stream into byte array. + Dim br As New BinaryReader(fStream) + 'When you use BinaryReader, you need to supply number of bytes to read from file. + 'In this case we want to read entire file. So supplying total number of bytes. + data = br.ReadBytes(CInt(numBytes)) + Return data + End Function Public Function CreateThumbnail(pDocumentPath As String) As Bitmap Try Dim oThumbNail As Bitmap = Thumbnail.GetThumbnailFromPDFFile(pDocumentPath) diff --git a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj index 6b681a0a..dca6d5fa 100644 --- a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj +++ b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj @@ -182,6 +182,7 @@ frmEnvelopeMainData.vb + Designer frmEnvelopeMainData.vb diff --git a/EnvelopeGenerator.Form/ModuleSettings.vb b/EnvelopeGenerator.Form/ModuleSettings.vb index df83979e..68da35d1 100644 --- a/EnvelopeGenerator.Form/ModuleSettings.vb +++ b/EnvelopeGenerator.Form/ModuleSettings.vb @@ -1,8 +1,10 @@ -Imports DigitalData.Modules.Logging +Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Logging Module ModuleSettings Public DOCUMENT_PATH_MOVE_AFTSEND As String = "" Public CurrLogConfig As LogConfig Public Directory2Delete As String = "" Public MS_GDPICTUREKEY As String = "" + Public DB_DD_ECM As MSSQLServer = Nothing End Module diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb index 7adf8935..7e50eeaa 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb +++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb @@ -57,6 +57,7 @@ Partial Public Class frmEnvelopeEditor Me.txtEnvelopeIdLabel2 = New DevExpress.XtraBars.BarStaticItem() Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem() + Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupDocuments = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() @@ -239,9 +240,9 @@ 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.btnEditData, Me.txtCreatorEmailLabel, Me.txtEnvelopeIdLabel2, Me.BarButtonItem1, Me.BarStaticItem1}) + 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.txtCreatorEmailLabel, Me.txtEnvelopeIdLabel2, Me.BarButtonItem1, Me.BarStaticItem1, Me.BarButtonItem2}) resources.ApplyResources(Me.RibbonControl1, "RibbonControl1") - Me.RibbonControl1.MaxItemId = 14 + Me.RibbonControl1.MaxItemId = 15 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] @@ -335,6 +336,12 @@ Partial Public Class frmEnvelopeEditor Me.BarStaticItem1.Id = 13 Me.BarStaticItem1.Name = "BarStaticItem1" ' + 'BarButtonItem2 + ' + resources.ApplyResources(Me.BarButtonItem2, "BarButtonItem2") + Me.BarButtonItem2.Id = 14 + Me.BarButtonItem2.Name = "BarButtonItem2" + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroupDocuments, Me.RibbonPageGroupInvitation, Me.RibbonPageGroupAddSignature, Me.RibbonPageGroupReceiver}) @@ -391,7 +398,7 @@ Partial Public Class frmEnvelopeEditor Me.LayoutControlGroup4.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup5}) Me.LayoutControlGroup4.Name = "LayoutControlGroup4" Me.LayoutControlGroup4.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) - Me.LayoutControlGroup4.Size = New System.Drawing.Size(251, 530) + Me.LayoutControlGroup4.Size = New System.Drawing.Size(251, 526) Me.LayoutControlGroup4.TextVisible = False ' 'LayoutControlGroup5 @@ -399,7 +406,7 @@ Partial Public Class frmEnvelopeEditor Me.LayoutControlGroup5.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem5}) Me.LayoutControlGroup5.Location = New System.Drawing.Point(0, 0) Me.LayoutControlGroup5.Name = "LayoutControlGroup5" - Me.LayoutControlGroup5.Size = New System.Drawing.Size(251, 530) + Me.LayoutControlGroup5.Size = New System.Drawing.Size(251, 526) resources.ApplyResources(Me.LayoutControlGroup5, "LayoutControlGroup5") ' 'LayoutControlItem5 @@ -407,7 +414,7 @@ Partial Public Class frmEnvelopeEditor Me.LayoutControlItem5.Control = Me.GridDocuments Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem5.Name = "LayoutControlItem5" - Me.LayoutControlItem5.Size = New System.Drawing.Size(227, 485) + Me.LayoutControlItem5.Size = New System.Drawing.Size(227, 477) Me.LayoutControlItem5.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem5.TextVisible = False ' @@ -571,7 +578,7 @@ Partial Public Class frmEnvelopeEditor Me.LayoutControlItem2.Control = Me.GridReceivers Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem2.Name = "LayoutControlItem2" - Me.LayoutControlItem2.Size = New System.Drawing.Size(875, 204) + Me.LayoutControlItem2.Size = New System.Drawing.Size(875, 200) Me.LayoutControlItem2.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem2.TextVisible = False ' @@ -604,7 +611,7 @@ Partial Public Class frmEnvelopeEditor Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup1}) Me.Root.Name = "Root" Me.Root.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) - Me.Root.Size = New System.Drawing.Size(899, 263) + Me.Root.Size = New System.Drawing.Size(899, 259) Me.Root.TextVisible = False ' 'LayoutControlGroup1 @@ -613,7 +620,7 @@ Partial Public Class frmEnvelopeEditor Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 0) Me.LayoutControlGroup1.Name = "LayoutControlGroup1" Me.LayoutControlGroup1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlGroup1.Size = New System.Drawing.Size(899, 263) + Me.LayoutControlGroup1.Size = New System.Drawing.Size(899, 259) resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1") ' 'LayoutControlItem3 @@ -622,7 +629,7 @@ Partial Public Class frmEnvelopeEditor Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem3.Name = "LayoutControlItem3" Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem3.Size = New System.Drawing.Size(873, 216) + Me.LayoutControlItem3.Size = New System.Drawing.Size(873, 208) resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3") Me.LayoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top Me.LayoutControlItem3.TextSize = New System.Drawing.Size(49, 13) @@ -775,6 +782,7 @@ Partial Public Class frmEnvelopeEditor Friend WithEvents colPageCount As DevExpress.XtraGrid.Columns.TileViewColumn Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem Friend WithEvents BarStaticItem1 As DevExpress.XtraBars.BarStaticItem + Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem #End Region diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.resx b/EnvelopeGenerator.Form/frmEnvelopeEditor.resx index f83640e4..49b707fa 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeEditor.resx +++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.resx @@ -126,7 +126,7 @@ 0, 132 - 14, 35 + 14, 39 Dateiname @@ -322,7 +322,7 @@ - Bearbeite Daten + Titel und Typ @@ -411,6 +411,9 @@ BarButtonItem1 + + Öffnen + 0, 0 @@ -436,10 +439,10 @@ 1164, 132 - 0, 662 + 0, 658 - 1164, 22 + 1164, 26 RibbonStatusBar1 @@ -466,7 +469,7 @@ 2 - 223, 481 + 223, 473 0 @@ -493,7 +496,7 @@ Ihre Dokumente - 251, 530 + 251, 526 1 @@ -535,10 +538,10 @@ 0, 0 - 338, 17 + 334, 17 - 14, 35 + 14, 39 @@ -632,7 +635,7 @@ Combo - 871, 200 + 871, 196 0 @@ -725,13 +728,13 @@ 0 - 23, 60 + 23, 64 Segoe UI, 9.75pt - 853, 180 + 853, 172 2 @@ -761,7 +764,7 @@ Ihre Nachricht - 899, 263 + 899, 259 0 @@ -791,7 +794,7 @@ 0, 0, 0, 0 - 903, 267 + 903, 263 1 @@ -824,7 +827,7 @@ 1 - 903, 530 + 903, 526 0 @@ -857,7 +860,7 @@ 1 - 1164, 530 + 1164, 526 1 @@ -875,13 +878,13 @@ 0 - 801, 17 + 792, 17 - 564, 17 + 557, 17 - 196, 17 + 193, 17 PDF Files|*.pdf @@ -1049,6 +1052,12 @@ DevExpress.XtraBars.BarStaticItem, 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 + RibbonPage1 diff --git a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb index 7a7806f9..2e8ac836 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeEditor.vb +++ b/EnvelopeGenerator.Form/frmEnvelopeEditor.vb @@ -1,6 +1,8 @@ Imports System.ComponentModel +Imports System.Data.SqlClient Imports System.IO Imports DevExpress.Export.Xl +Imports DevExpress.Utils.CommonDialogs Imports DevExpress.Utils.Drawing Imports DevExpress.XtraEditors Imports DevExpress.XtraExport.Helpers @@ -35,7 +37,12 @@ Partial Public Class frmEnvelopeEditor Private Async Sub btnNewFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnNewFile.ItemClick Dim oHandle = SplashScreenManager.ShowOverlayForm(Me) - + If IsNothing(Envelope) Then + SaveEnvelopeWithValidation() + If IsNothing(Envelope) Then + Exit Sub + End If + End If Try ' prüfen ob es schon eine Datei gibt If Documents.Count > 0 Then @@ -48,6 +55,7 @@ Partial Public Class frmEnvelopeEditor If oDocument IsNot Nothing Then Documents.Add(oDocument) + ' Update_File_DB(OpenFileDialog1.FileName) Else MsgBox(Resources.Envelope.Document_Could_Not_Be_Saved, MsgBoxStyle.Critical, Text) End If @@ -61,7 +69,83 @@ Partial Public Class frmEnvelopeEditor RibbonPageGroupAddSignature_Enabled() End Try End Sub + Sub Update_File_DB(pFilePath As String) + Dim SqlCom As SqlCommand + Dim imageData As Byte() + Dim sFileName As String + Dim qry As String + Try + 'Read Image Bytes into a byte array + 'Initialize SQL Server Connection + + 'Convert File to bytes Array + imageData = ReadFile(pFilePath) + sFileName = System.IO.Path.GetFileName(pFilePath) + 'Set insert query + qry = $"UPDATE TBSIG_ENVELOPE SET DOC1 = @ImageData WHERE GUID = {Envelope.Id}" + 'Initialize SqlCommand object for insert. + SqlCom = New SqlCommand(qry, DB_DD_ECM.GetConnection) + 'We are passing File Name and Image byte data as sql parameters. + SqlCom.Parameters.Add(New SqlParameter("@ImageData", DirectCast(imageData, Object))) + 'Execute the Query + SqlCom.ExecuteNonQuery() + Catch ex As Exception + Logger.Error(ex) + MessageBox.Show(ex.ToString()) + + End Try + End Sub + 'Open file in to a filestream and read data in a byte array. + Private Function ReadFile(ByVal sPath As String) As Byte() + 'Initialize byte array with a null value initially. + Dim data As Byte() = Nothing + 'Use FileInfo object to get file size. + Dim fInfo As New FileInfo(sPath) + Dim numBytes As Long = fInfo.Length + 'Open FileStream to read file + Dim fStream As New FileStream(sPath, FileMode.Open, FileAccess.Read) + 'Use BinaryReader to read file stream into byte array. + Dim br As New BinaryReader(fStream) + 'When you use BinaryReader, you need to supply number of bytes to read from file. + 'In this case we want to read entire file. So supplying total number of bytes. + data = br.ReadBytes(CInt(numBytes)) + Return data + End Function + Private Sub downLoadFile(ByVal sFileName As String) + + Dim strSql As String + + 'For Document + Try + 'Get image data from gridview column. + strSql = "Select [DOC1] from [TBSIG_ENVELOPE] WHERE GUID =" & Envelope.Id + + + 'Get image data from DB + Dim fileData As Byte() = DirectCast(DB_DD_ECM.GetScalarValue(strSql), Byte()) + Dim sTempFileName As String = Application.StartupPath & "\" & sFileName + If Not fileData Is Nothing Then + + 'Read image data into a file stream + Using fs As New FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(fileData, 0, fileData.Length) + 'Set image variable value using memory stream. + fs.Flush() + fs.Close() + End Using + + 'Open File + + Process.Start(sFileName) + + End If + + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Sub Private Sub frmEditor_Load(sender As Object, e As EventArgs) Handles Me.Load Logger = State.LogConfig.GetLogger() Logger.Debug("Loading Configuration..") @@ -471,24 +555,26 @@ Partial Public Class frmEnvelopeEditor SendEnvelopeButton_Enable() RibbonPageGroupAddSignature_Enabled() End Sub - + Dim CellValueChanged As Boolean = False Private Sub ViewReceivers_CellValueChanged(sender As Object, e As Views.Base.CellValueChangedEventArgs) Handles ViewReceivers.CellValueChanged - If e.Column.FieldName = COL_EMAIL Then + If e.Column.FieldName = COL_EMAIL And CellValueChanged = False Then If e.Value Is Nothing Then ' Keine E-Mail-Adresse, also weg damit ViewReceivers.DeleteRow(ViewReceivers.FocusedRowHandle) Else ' Doppelte E-Mail-Adresse? TODO 'Dim oReceivers = Controller.Envelope.Receivers - + CellValueChanged = True Dim oNameCellValue = ViewReceivers.GetRowCellValue(e.RowHandle, COL_NAME) If oNameCellValue Is Nothing Then - Dim oEmailAdress As String = DirectCast(e.Value, String) + Dim oEmailAdress As String = DirectCast(e.Value.ToString.ToLower, String) + Dim oLastName As String = Controller.GetLastNameByEmailAdress(oEmailAdress) Dim oAccessCode As String = Helpers.GetAccessCode() - + ViewReceivers.SetRowCellValue(e.RowHandle, ViewReceivers.Columns.Item(COL_EMAIL), oEmailAdress) ViewReceivers.SetRowCellValue(e.RowHandle, ViewReceivers.Columns.Item(COL_NAME), oLastName) ViewReceivers.SetRowCellValue(e.RowHandle, ViewReceivers.Columns.Item(COL_CODE), oAccessCode) + CellValueChanged = False End If End If End If @@ -497,4 +583,6 @@ Partial Public Class frmEnvelopeEditor Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click End Sub + + End Class diff --git a/EnvelopeGenerator.Form/frmEnvelopeMainData.vb b/EnvelopeGenerator.Form/frmEnvelopeMainData.vb index ec5ce5cc..c2b60e1e 100644 --- a/EnvelopeGenerator.Form/frmEnvelopeMainData.vb +++ b/EnvelopeGenerator.Form/frmEnvelopeMainData.vb @@ -94,10 +94,12 @@ Public Class frmEnvelopeMainData End If Dim oEnvelopeType = DirectCast(cmbEnvelopeType.EditValue, EnvelopeType) - + If IsNothing(oEnvelopeType) Then + oEnvelopeType = EnvelopeType + End If Envelope.Title = txtTitle.EditValue.ToString Envelope.EnvelopeType = oEnvelopeType - Envelope.EnvelopeTypeId = oEnvelopeType.Id + Envelope.EnvelopeTypeId = IIf(IsNothing(oEnvelopeType), 0, oEnvelopeType.Id) Envelope.CertificationType = cmbCertificationType.SelectedIndex + 1 Envelope.Language = cmbLanguage.EditValue Envelope.UseAccessCode = chkUseAccessCode.EditValue diff --git a/EnvelopeGenerator.Form/frmMain.Designer.vb b/EnvelopeGenerator.Form/frmMain.Designer.vb index 556e2834..162f0593 100644 --- a/EnvelopeGenerator.Form/frmMain.Designer.vb +++ b/EnvelopeGenerator.Form/frmMain.Designer.vb @@ -83,6 +83,9 @@ Partial Class frmMain Me.GridColumn5 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn7 = New DevExpress.XtraGrid.Columns.GridColumn() Me.RefreshTimer = New System.Windows.Forms.Timer(Me.components) + Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() + Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.bbtnitmEB = New DevExpress.XtraBars.BarButtonItem() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.Panel1.SuspendLayout() @@ -288,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.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}) resources.ApplyResources(Me.RibbonControl, "RibbonControl") - Me.RibbonControl.MaxItemId = 14 + Me.RibbonControl.MaxItemId = 15 Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2}) Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] @@ -400,7 +403,7 @@ Partial Class frmMain ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroup2}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup4}) Me.RibbonPage1.Name = "RibbonPage1" resources.ApplyResources(Me.RibbonPage1, "RibbonPage1") ' @@ -423,6 +426,7 @@ Partial Class frmMain ' Me.RibbonPageGroup2.ItemLinks.Add(Me.btnShowDocument) Me.RibbonPageGroup2.ItemLinks.Add(Me.btnContactReceiver) + Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitmEB) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2") ' @@ -581,6 +585,23 @@ Partial Class frmMain ' Me.RefreshTimer.Interval = 120000 ' + 'SaveFileDialog1 + ' + resources.ApplyResources(Me.SaveFileDialog1, "SaveFileDialog1") + ' + 'RibbonPageGroup4 + ' + Me.RibbonPageGroup4.Name = "RibbonPageGroup4" + resources.ApplyResources(Me.RibbonPageGroup4, "RibbonPageGroup4") + ' + 'bbtnitmEB + ' + resources.ApplyResources(Me.bbtnitmEB, "bbtnitmEB") + Me.bbtnitmEB.Enabled = False + Me.bbtnitmEB.Id = 14 + Me.bbtnitmEB.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.bbtnitmEB.Name = "bbtnitmEB" + ' 'frmMain ' resources.ApplyResources(Me, "$this") @@ -672,4 +693,7 @@ Partial Class frmMain Friend WithEvents colAccessCode As DevExpress.XtraGrid.Columns.GridColumn 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 End Class diff --git a/EnvelopeGenerator.Form/frmMain.resx b/EnvelopeGenerator.Form/frmMain.resx index dc357f7b..884fd395 100644 --- a/EnvelopeGenerator.Form/frmMain.resx +++ b/EnvelopeGenerator.Form/frmMain.resx @@ -679,6 +679,36 @@ 2l5bAl4RwcXCFfsR4Xefb9NSVVK1Cd1LkRF6v9XyxLeaHtij7ty3R92pQ2GfVdg/v1T/jtb+gcD7/Q6B A3mJnKFyyJmGNmy/hqecqqbHT0D2qhCuYE4nHyWO7o8b4D6P8T7zGl67RbznkIucwEFnQaxy0ElO+YAT Tf3vtimEjyo75pQyyYvgMZ7jNQxe/wsmJ/df0Zh/vpjXMzsAAAAASUVORK5CYII= + + + + Ergebnisbericht anzeigen + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJYEAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ + LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD + MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjc1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRvY3VtZW50UERGIj4NCiAgICA8cGF0aCBkPSJN + MjIsMjR2NEgyVjJoMTR2NWMwLDAuNiwwLjQsMSwxLDFoNXY0aDJWN2wtNy03SDFDMC40LDAsMCwwLjQs + MCwxdjI4YzAsMC42LDAuNCwxLDEsMWgyMmMwLjYsMCwxLTAuNCwxLTEgICB2LTVIMjJ6IiBjbGFzcz0i + QmxhY2siIC8+DQogICAgPHBhdGggZD0iTTE5LjIsMTZjMC4zLDAuNSwwLjQsMS4xLDAuNCwxLjljMCww + LjktMC4yLDEuNS0wLjUsMmMtMC4zLDAuNS0wLjcsMC43LTEuMywwLjdoLTAuNnYtNS4zaDAuNiAgIEMx + OC40LDE1LjMsMTguOSwxNS42LDE5LjIsMTZ6IE0xMi4xLDE1LjNoLTAuNXYyLjZoMC41YzAuNywwLDEu + MS0wLjQsMS4xLTEuM2MwLTAuNC0wLjEtMC44LTAuMy0xQzEyLjYsMTUuNCwxMi40LDE1LjMsMTIuMSwx + NS4zeiAgICBNMzAsMTJ2MTJINlYxMkgzMHogTTE0LjgsMTYuNWMwLTAuOC0wLjItMS41LTAuNi0xLjlj + LTAuNC0wLjQtMS0wLjctMS44LTAuN0gxMHY4aDEuNnYtMi43aDAuNmMwLjgsMCwxLjQtMC4zLDEuOS0w + LjggICBDMTQuNSwxOCwxNC44LDE3LjMsMTQuOCwxNi41eiBNMjEuMiwxNy45YzAtMi42LTEuMS0zLjkt + My40LTMuOWgtMi4xdjhoMi4yYzEuMSwwLDEuOS0wLjQsMi41LTEuMUMyMC45LDIwLjIsMjEuMiwxOS4y + LDIxLjIsMTcuOXogICAgTTI2LDE0aC0zLjd2OGgxLjZ2LTMuMWgydi0xLjNoLTJ2LTIuMkgyNlYxNHoi + IGNsYXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs= @@ -693,6 +723,9 @@ Funktionen + + RibbonPageGroup4 + Start @@ -706,10 +739,10 @@ 1090, 162 - 0, 660 + 0, 656 - 1090, 22 + 1090, 26 RibbonStatusBar @@ -736,7 +769,7 @@ 2 - 1088, 459 + 1088, 455 2 @@ -754,7 +787,7 @@ 0 - 1088, 459 + 1088, 455 Offene Umschläge @@ -772,7 +805,7 @@ 0 - 1090, 488 + 1090, 484 3 @@ -916,7 +949,7 @@ 195 - 1086, 466 + 1088, 455 3 @@ -934,7 +967,7 @@ 0 - 1086, 466 + 1088, 455 Abgeschlossene Umschläge @@ -994,7 +1027,7 @@ 1 - 1090, 498 + 1090, 494 5 @@ -1014,6 +1047,12 @@ 193, 17 + + 316, 17 + + + PDF Files|*.pdf + True @@ -1409,6 +1448,24 @@ System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + SaveFileDialog1 + + + System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + RibbonPageGroup4 + + + DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + bbtnitmEB + + + 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 c18051a3..4b3dac16 100644 --- a/EnvelopeGenerator.Form/frmMain.vb +++ b/EnvelopeGenerator.Form/frmMain.vb @@ -1,4 +1,5 @@ -Imports DevExpress.LookAndFeel +Imports System.IO +Imports DevExpress.LookAndFeel Imports DevExpress.Utils.Extensions Imports DevExpress.XtraCharts Imports DevExpress.XtraGrid @@ -19,6 +20,8 @@ Public Class frmMain Private State As State Private Controller As EnvelopeListController + Private myFileData As Byte() + Private myResFileData As Byte() Public Sub New(pState As State) ' Dieser Aufruf ist für den Designer erforderlich. @@ -187,11 +190,13 @@ Public Class frmMain btnDeleteEnvelope.Enabled = False btnContactReceiver.Enabled = False btnShowDocument.Enabled = False + bbtnitmEB.Enabled = True Case 0 btnEditEnvelope.Enabled = True btnDeleteEnvelope.Enabled = True btnContactReceiver.Enabled = True btnShowDocument.Enabled = True + bbtnitmEB.Enabled = False End Select End Sub @@ -214,9 +219,31 @@ Public Class frmMain btnEditEnvelope.Enabled = True End If End Sub + Private Sub bbtnitmEB_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmEB.ItemClick + If ViewEnvelopes.FocusedRowHandle < 0 Then + Exit Sub + End If + Me.Cursor = Cursors.WaitCursor + Dim oEnvelope As Envelope = ViewCompleted.GetRow(ViewCompleted.FocusedRowHandle) + GetResRepFileStreamByte(oEnvelope.Id) + Dim oTempFolder = TempFiles.TempPath + Dim oTempFilename = String.Concat(oTempFolder, "\", $"ViewEnvResReport_{oEnvelope.Id}.pdf") + If File.Exists(oTempFilename) Then + Try + File.OpenWrite(oTempFilename) + Catch ex As Exception + MsgBox("File might already be open?", MsgBoxStyle.Exclamation) + Exit Sub + End Try + + File.Delete(oTempFilename) + End If + downloadResFile(oTempFilename) + Me.Cursor = Cursors.Default + End Sub Private Sub ViewEnvelopes_CustomDrawCell(sender As Object, e As DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs) Handles ViewEnvelopes.CustomDrawCell - If e.RowHandle < 0 Then + If e.RowHandle < 0 Or XtraTabControl1.SelectedTabPageIndex = 1 Then Exit Sub End If @@ -311,33 +338,142 @@ Public Class frmMain End Sub Private Sub btnShowDocument_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnShowDocument.ItemClick - If ViewEnvelopes.FocusedRowHandle < 0 Then - Exit Sub - End If - - Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle) - Dim oDocument = oEnvelope.Documents.FirstOrDefault() - - If oDocument Is Nothing Then - MsgBox(Resources.Envelope.The_envelope_does_not_contain_any_documents, MsgBoxStyle.Exclamation, Text) - Exit Sub - End If - Try - Process.Start(oDocument.Filepath) + If ViewEnvelopes.FocusedRowHandle < 0 Then + Exit Sub + End If + Me.Cursor = Cursors.WaitCursor + Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle) + Dim oDocument = oEnvelope.Documents.FirstOrDefault() + If oDocument Is Nothing Then + MsgBox(Resources.Envelope.The_envelope_does_not_contain_any_documents, MsgBoxStyle.Exclamation, Text) + Me.Cursor = Cursors.Default + Exit Sub + Else + If Not IsNothing(oDocument.Byte_Data) Then + Dim oTempFolder = TempFiles.TempPath + Dim oTempFilename = String.Concat(oTempFolder, "\", $"ViewEnvDoc_{oEnvelope.Id}.pdf") + If File.Exists(oTempFilename) Then + Try + File.OpenWrite(oTempFilename) + Catch ex As Exception + MsgBox("File might already be open?", MsgBoxStyle.Exclamation) + Me.Cursor = Cursors.Default + Exit Sub + End Try + + + File.Delete(oTempFilename) + End If + downloadFile(oTempFilename, oDocument.Byte_Data) + End If + End If Catch ex As Exception MsgBox(Resources.Envelope.Document_could_not_be_opened, MsgBoxStyle.Critical, Text) - Logger.Error(ex) + Logger.Error(ex) + End Try + Me.Cursor = Cursors.Default + End Sub + 'Private Sub GetFileStreamByte(ByVal pEnvID As Long) + + ' Dim strSql As String + ' 'For Document + ' Try + ' 'Get image data from gridview column. + ' strSql = "Select [DOC1] from [TBSIG_ENVELOPE] WHERE GUID =" & pEnvID + ' 'Get image data from DB + ' Dim fileData As Byte() = DirectCast(DB_DD_ECM.GetScalarValue(strSql), Byte()) + ' If Not fileData Is Nothing Then + ' myFileData = fileData + ' Else + ' myFileData = Nothing + ' End If + + ' Catch ex As Exception + ' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in GetFileStreamByte") + ' myFileData = Nothing + ' End Try + + 'End Sub + Private Sub GetResRepFileStreamByte(ByVal pEnvID As Long) + + Dim strSql As String + 'For Document + Try + 'Get image data from gridview column. + strSql = "Select [DOC_RESULT] from [TBSIG_ENVELOPE] WHERE GUID = " & pEnvID + Dim obyteDB = DB_DD_ECM.GetScalarValue(strSql) + If Not IsDBNull(obyteDB) Then + 'Get image data from DB + Dim fileData As Byte() = DirectCast(DB_DD_ECM.GetScalarValue(strSql), Byte()) + If Not fileData Is Nothing Then + myResFileData = fileData + Else + myResFileData = Nothing + End If + Else + myResFileData = Nothing + End If + + + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in GetResRepFileStreamByte") + myResFileData = Nothing + End Try + + End Sub + Private Sub downloadFile(ByVal sFileName As String, pByte As Byte()) + + 'For Document + Try + If Not pByte Is Nothing Then + 'Read image data into a file stream + Using fs As New FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(pByte, 0, pByte.Length) + 'Set image variable value using memory stream. + fs.Flush() + fs.Close() + End Using + 'Open File + Process.Start(sFileName) + End If + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in downloadFile") End Try End Sub + Private Sub downloadResFile(ByVal sFileName As String) + Dim strSql As String + 'For Document + Try + If Not myResFileData Is Nothing Then + 'Read image data into a file stream + Using fs As New FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(myResFileData, 0, myResFileData.Length) + 'Set image variable value using memory stream. + fs.Flush() + fs.Close() + End Using + 'Open File + Process.Start(sFileName) + Else + MsgBox("Could not get DocData from Database!", MsgBoxStyle.Exclamation, "Error in downloadResFile") + End If + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in downloadResFile") + End Try + End Sub Private Sub ViewCompleted_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles ViewCompleted.FocusedRowChanged If ViewCompleted.FocusedRowHandle < 0 Then Exit Sub End If Dim oEnvelope As Envelope = ViewCompleted.GetRow(ViewCompleted.FocusedRowHandle) - + If oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeArchived Then + bbtnitmEB.Enabled = True + Else + bbtnitmEB.Enabled = False + End If txtEnvelopeIdLabel.Caption = String.Format(txtEnvelopeIdLabel.Tag, oEnvelope.Id) End Sub @@ -370,4 +506,6 @@ Public Class frmMain End If RefreshTimer.Start() End Sub + + End Class \ No newline at end of file diff --git a/EnvelopeGenerator.Form/frmRueckruf.Designer.vb b/EnvelopeGenerator.Form/frmRueckruf.Designer.vb index c0cfdea9..124739cc 100644 --- a/EnvelopeGenerator.Form/frmRueckruf.Designer.vb +++ b/EnvelopeGenerator.Form/frmRueckruf.Designer.vb @@ -22,6 +22,7 @@ Partial Class frmRueckruf 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. _ Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmRueckruf)) Me.Label2 = New System.Windows.Forms.Label() Me.txtReason = New System.Windows.Forms.TextBox() Me.btnWeiter = New System.Windows.Forms.Button() @@ -38,9 +39,9 @@ Partial Class frmRueckruf Me.Label2.Location = New System.Drawing.Point(22, 20) Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(432, 16) + Me.Label2.Size = New System.Drawing.Size(380, 16) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Bitte geben Sie einen Grund für den Abbruch/Rückruf des Umschlages ein:" + Me.Label2.Text = "Bitte geben Sie einen Grund für den Rückruf des Umschlages ein:" ' 'txtReason ' @@ -58,7 +59,7 @@ Partial Class frmRueckruf Me.btnWeiter.Name = "btnWeiter" Me.btnWeiter.Size = New System.Drawing.Size(203, 44) Me.btnWeiter.TabIndex = 2 - Me.btnWeiter.Text = "Weiter" + Me.btnWeiter.Text = "Umschlag zurückrufen" Me.btnWeiter.UseVisualStyleBackColor = True ' 'Label1 @@ -72,11 +73,13 @@ Partial Class frmRueckruf ' 'btnCancel ' + Me.btnCancel.Image = CType(resources.GetObject("btnCancel.Image"), System.Drawing.Image) + Me.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft Me.btnCancel.Location = New System.Drawing.Point(251, 134) Me.btnCancel.Name = "btnCancel" Me.btnCancel.Size = New System.Drawing.Size(203, 44) Me.btnCancel.TabIndex = 4 - Me.btnCancel.Text = "Abbruch" + Me.btnCancel.Text = "Abbrechen" Me.btnCancel.UseVisualStyleBackColor = True ' 'StatusStrip1 diff --git a/EnvelopeGenerator.Form/frmRueckruf.resx b/EnvelopeGenerator.Form/frmRueckruf.resx index 74443647..0bdadd01 100644 --- a/EnvelopeGenerator.Form/frmRueckruf.resx +++ b/EnvelopeGenerator.Form/frmRueckruf.resx @@ -117,6 +117,19 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFJSURBVDhPpVOhjoNQEOQT+gn9hPuEC56kFleBB41CYRs8 + SSWyAg8aRULwh4OAwGHf7Sz7yuMCd+ImmfRlZ3cYeFsLWJblQnwSFXEmBiz8ANUj6dG8aSGoqko5jsNs + 23YTCXS+Eussy5Rt26ooCuiRyNxQpmnKIuh5nhrHEUmQLMA5jmPW0Ee1l4yuQBMSaAMwSRI0zl3XsSFq + MKFaTbzI6AoUIOR5vjPB0/BKOBuprjK2x5kJCJNpmvD0T2k/BtyJHNU0gCnVn9J2DBk+TOC67p/xP4gz + Ppw5aH4D3/f5A8rIBj18Ers2b0Fu5iGjKxAtDMPdMBaGGvmu6feOHiQwjN9LZunt0jy6azoj5Rc0vFLT + NLxkLJoGp4tCQI1Yoh+v1Pd9ycIwDLzjEntzPgHpD/wXsLl0jrRzIPx1WIP67sQStJRS/6CyvgGjI/3S + /lGAOgAAAABJRU5ErkJggg== + + 17, 17 diff --git a/EnvelopeGenerator.Form/frmSplashScreen.Designer.vb b/EnvelopeGenerator.Form/frmSplashScreen.Designer.vb index c16578d9..21d62435 100644 --- a/EnvelopeGenerator.Form/frmSplashScreen.Designer.vb +++ b/EnvelopeGenerator.Form/frmSplashScreen.Designer.vb @@ -46,10 +46,11 @@ Partial Class frmSplashScreen ' Me.lblCopyright.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblCopyright.AutoSize = True + Me.lblCopyright.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblCopyright.Location = New System.Drawing.Point(137, 226) Me.lblCopyright.Name = "lblCopyright" Me.lblCopyright.RightToLeft = System.Windows.Forms.RightToLeft.No - Me.lblCopyright.Size = New System.Drawing.Size(68, 13) + Me.lblCopyright.Size = New System.Drawing.Size(82, 14) Me.lblCopyright.TabIndex = 9 Me.lblCopyright.Tag = "Copyright {0}" Me.lblCopyright.Text = "Copyright {0}" @@ -58,9 +59,10 @@ Partial Class frmSplashScreen ' Me.lblVersion.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblVersion.AutoSize = True + Me.lblVersion.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblVersion.Location = New System.Drawing.Point(12, 226) Me.lblVersion.Name = "lblVersion" - Me.lblVersion.Size = New System.Drawing.Size(91, 13) + Me.lblVersion.Size = New System.Drawing.Size(111, 14) Me.lblVersion.TabIndex = 8 Me.lblVersion.Tag = "Version {0}.{1:00}" Me.lblVersion.Text = "Version {0}.{1:00}" @@ -78,10 +80,10 @@ Partial Class frmSplashScreen Me.lblStatus.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblStatus.AutoSize = True Me.lblStatus.BackColor = System.Drawing.SystemColors.Control - Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblStatus.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblStatus.Location = New System.Drawing.Point(12, 253) Me.lblStatus.Name = "lblStatus" - Me.lblStatus.Size = New System.Drawing.Size(47, 15) + Me.lblStatus.Size = New System.Drawing.Size(54, 14) Me.lblStatus.TabIndex = 7 Me.lblStatus.Text = "{Status}" Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter diff --git a/EnvelopeGenerator.Form/frmSplashScreen.resx b/EnvelopeGenerator.Form/frmSplashScreen.resx index 4d9d3568..8487129c 100644 --- a/EnvelopeGenerator.Form/frmSplashScreen.resx +++ b/EnvelopeGenerator.Form/frmSplashScreen.resx @@ -121,7 +121,7 @@ iVBORw0KGgoAAAANSUhEUgAAAyAAAADICAYAAAAQj4UaAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL - EAAACxABrSO9dQAASudJREFUeF7tvWusZNd5nukfcpSOmmre3Wp2s3lrdpNUk01RPxIk6iBBIjFxMBPZ + DwAACw8BkvkDpQAASudJREFUeF7tvWusZNd5nukfcpSOmmre3Wp2s3lrdpNUk01RPxIk6iBBIjFxMBPZ DGxLEyB2M8ggkegAsSRElikHEsnBJFZrRjZtxZIpZaIZRy2AloGxrAHIRKIQRIqVGJ6AsJEAAwgDOzNJ HCBSLsqfynmq+HV9tepd+1KnLnufen88OKf2rfa67HPed3/rW+t7PnffoxNjjDHGGLNb/n4L/9t9l6b8 vXsX+ewBn1ngkSkvCH79hy9NXr5yafKbz1yavHr10uRfv/jo5Pe//Ohk8uoMfmcb+ziGYznnc4/q663C diff --git a/EnvelopeGenerator.Form/frmSplashScreen.vb b/EnvelopeGenerator.Form/frmSplashScreen.vb index b333ac13..0504a476 100644 --- a/EnvelopeGenerator.Form/frmSplashScreen.vb +++ b/EnvelopeGenerator.Form/frmSplashScreen.vb @@ -70,6 +70,8 @@ Public Class frmSplashScreen If oState.Database?.DBInitialized = False Then Throw New ApplicationException("Could not connect to the database. Application will close!") + Else + DB_DD_ECM = oState.Database End If Worker.ReportProgress(40, "Initialize Confguration")