MS Integrating ByteData to DB for SIG Documents

This commit is contained in:
SchreiberM 2024-06-19 11:16:32 +02:00
parent 76d4151182
commit 67a8506a37
21 changed files with 522 additions and 106 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' indem Sie "*" wie unten gezeigt eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.6.0.0")>
<Assembly: AssemblyFileVersion("1.6.0.0")>
<Assembly: AssemblyVersion("1.7.0.0")>
<Assembly: AssemblyFileVersion("1.7.0.0")>

View File

@ -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)

View File

@ -182,6 +182,7 @@
</EmbeddedResource>
<EmbeddedResource Include="frmEnvelopeMainData.en.resx">
<DependentUpon>frmEnvelopeMainData.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmEnvelopeMainData.resx">
<DependentUpon>frmEnvelopeMainData.vb</DependentUpon>

View File

@ -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

View File

@ -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

View File

@ -126,7 +126,7 @@
<value>0, 132</value>
</data>
<data name="GridDocuments.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 35</value>
<value>14, 39</value>
</data>
<data name="colFilename.Caption" xml:space="preserve">
<value>Dateiname</value>
@ -322,7 +322,7 @@
</value>
</data>
<data name="btnEditData.Caption" xml:space="preserve">
<value>Bearbeite Daten</value>
<value>Titel und Typ</value>
</data>
<data name="btnEditData.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@ -411,6 +411,9 @@
<data name="BarButtonItem1.Caption" xml:space="preserve">
<value>BarButtonItem1</value>
</data>
<data name="BarButtonItem2.Caption" xml:space="preserve">
<value>Öffnen</value>
</data>
<data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
@ -436,10 +439,10 @@
<value>1164, 132</value>
</data>
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 662</value>
<value>0, 658</value>
</data>
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>1164, 22</value>
<value>1164, 26</value>
</data>
<data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve">
<value>RibbonStatusBar1</value>
@ -466,7 +469,7 @@
<value>2</value>
</data>
<data name="GridDocuments.Size" type="System.Drawing.Size, System.Drawing">
<value>223, 481</value>
<value>223, 473</value>
</data>
<data name="GridDocuments.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -493,7 +496,7 @@
<value>Ihre Dokumente</value>
</data>
<data name="LayoutControl3.Size" type="System.Drawing.Size, System.Drawing">
<value>251, 530</value>
<value>251, 526</value>
</data>
<data name="LayoutControl3.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -535,10 +538,10 @@
<value>0, 0</value>
</data>
<metadata name="EnvelopeReceiverBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>338, 17</value>
<value>334, 17</value>
</metadata>
<data name="GridReceivers.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 35</value>
<value>14, 39</value>
</data>
<data name="colColor.Caption" xml:space="preserve">
<value> </value>
@ -632,7 +635,7 @@
<value>Combo</value>
</data>
<data name="GridReceivers.Size" type="System.Drawing.Size, System.Drawing">
<value>871, 200</value>
<value>871, 196</value>
</data>
<data name="GridReceivers.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -725,13 +728,13 @@
<value>0</value>
</data>
<data name="txtMessage.Location" type="System.Drawing.Point, System.Drawing">
<value>23, 60</value>
<value>23, 64</value>
</data>
<data name="txtMessage.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9.75pt</value>
</data>
<data name="txtMessage.Size" type="System.Drawing.Size, System.Drawing">
<value>853, 180</value>
<value>853, 172</value>
</data>
<data name="txtMessage.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -761,7 +764,7 @@
<value>Ihre Nachricht</value>
</data>
<data name="LayoutControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>899, 263</value>
<value>899, 259</value>
</data>
<data name="LayoutControl1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -791,7 +794,7 @@
<value>0, 0, 0, 0</value>
</data>
<data name="PanelControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>903, 267</value>
<value>903, 263</value>
</data>
<data name="PanelControl2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -824,7 +827,7 @@
<value>1</value>
</data>
<data name="SplitContainerControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>903, 530</value>
<value>903, 526</value>
</data>
<data name="SplitContainerControl2.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -857,7 +860,7 @@
<value>1</value>
</data>
<data name="SplitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>1164, 530</value>
<value>1164, 526</value>
</data>
<data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -875,13 +878,13 @@
<value>0</value>
</data>
<metadata name="FrmEditorBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>801, 17</value>
<value>792, 17</value>
</metadata>
<metadata name="EnvelopeDocumentBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>564, 17</value>
<value>557, 17</value>
</metadata>
<metadata name="OpenFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>196, 17</value>
<value>193, 17</value>
</metadata>
<data name="OpenFileDialog1.Filter" xml:space="preserve">
<value>PDF Files|*.pdf</value>
@ -1049,6 +1052,12 @@
<data name="&gt;&gt;BarStaticItem1.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;BarButtonItem2.Name" xml:space="preserve">
<value>BarButtonItem2</value>
</data>
<data name="&gt;&gt;BarButtonItem2.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;RibbonPage1.Name" xml:space="preserve">
<value>RibbonPage1</value>
</data>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -679,6 +679,36 @@
2l5bAl4RwcXCFfsR4Xefb9NSVVK1Cd1LkRF6v9XyxLeaHtij7ty3R92pQ2GfVdg/v1T/jtb+gcD7/Q6B
A3mJnKFyyJmGNmy/hqecqqbHT0D2qhCuYE4nHyWO7o8b4D6P8T7zGl67RbznkIucwEFnQaxy0ElO+YAT
Tf3vtimEjyo75pQyyYvgMZ7jNQxe/wsmJ/df0Zh/vpjXMzsAAAAASUVORK5CYII=
</value>
</data>
<data name="bbtnitmEB.Caption" xml:space="preserve">
<value>Ergebnisbericht anzeigen</value>
</data>
<data name="BarButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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=
</value>
</data>
<data name="RibbonControl.Location" type="System.Drawing.Point, System.Drawing">
@ -693,6 +723,9 @@
<data name="RibbonPageGroup2.Text" xml:space="preserve">
<value>Funktionen</value>
</data>
<data name="RibbonPageGroup4.Text" xml:space="preserve">
<value>RibbonPageGroup4</value>
</data>
<data name="RibbonPage1.Text" xml:space="preserve">
<value>Start</value>
</data>
@ -706,10 +739,10 @@
<value>1090, 162</value>
</data>
<data name="RibbonStatusBar.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 660</value>
<value>0, 656</value>
</data>
<data name="RibbonStatusBar.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 22</value>
<value>1090, 26</value>
</data>
<data name="&gt;&gt;RibbonStatusBar.Name" xml:space="preserve">
<value>RibbonStatusBar</value>
@ -736,7 +769,7 @@
<value>2</value>
</data>
<data name="GridEnvelopes.Size" type="System.Drawing.Size, System.Drawing">
<value>1088, 459</value>
<value>1088, 455</value>
</data>
<data name="GridEnvelopes.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -754,7 +787,7 @@
<value>0</value>
</data>
<data name="XtraTabPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>1088, 459</value>
<value>1088, 455</value>
</data>
<data name="XtraTabPage1.Text" xml:space="preserve">
<value>Offene Umschläge</value>
@ -772,7 +805,7 @@
<value>0</value>
</data>
<data name="XtraTabControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 488</value>
<value>1090, 484</value>
</data>
<data name="XtraTabControl1.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -916,7 +949,7 @@
<value>195</value>
</data>
<data name="GridCompleted.Size" type="System.Drawing.Size, System.Drawing">
<value>1086, 466</value>
<value>1088, 455</value>
</data>
<data name="GridCompleted.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -934,7 +967,7 @@
<value>0</value>
</data>
<data name="XtraTabPage2.Size" type="System.Drawing.Size, System.Drawing">
<value>1086, 466</value>
<value>1088, 455</value>
</data>
<data name="XtraTabPage2.Text" xml:space="preserve">
<value>Abgeschlossene Umschläge</value>
@ -994,7 +1027,7 @@
<value>1</value>
</data>
<data name="SplitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 498</value>
<value>1090, 494</value>
</data>
<data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -1014,6 +1047,12 @@
<metadata name="RefreshTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>193, 17</value>
</metadata>
<metadata name="SaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>316, 17</value>
</metadata>
<data name="SaveFileDialog1.Filter" xml:space="preserve">
<value>PDF Files|*.pdf</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@ -1409,6 +1448,24 @@
<data name="&gt;&gt;RefreshTimer.Type" xml:space="preserve">
<value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;SaveFileDialog1.Name" xml:space="preserve">
<value>SaveFileDialog1</value>
</data>
<data name="&gt;&gt;SaveFileDialog1.Type" xml:space="preserve">
<value>System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;RibbonPageGroup4.Name" xml:space="preserve">
<value>RibbonPageGroup4</value>
</data>
<data name="&gt;&gt;RibbonPageGroup4.Type" xml:space="preserve">
<value>DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;bbtnitmEB.Name" xml:space="preserve">
<value>bbtnitmEB</value>
</data>
<data name="&gt;&gt;bbtnitmEB.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmMain</value>
</data>

View File

@ -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

View File

@ -22,6 +22,7 @@ Partial Class frmRueckruf
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
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

View File

@ -117,6 +117,19 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="btnCancel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFJSURBVDhPpVOhjoNQEOQT+gn9hPuEC56kFleBB41CYRs8
SSWyAg8aRULwh4OAwGHf7Sz7yuMCd+ImmfRlZ3cYeFsLWJblQnwSFXEmBiz8ANUj6dG8aSGoqko5jsNs
23YTCXS+Eussy5Rt26ooCuiRyNxQpmnKIuh5nhrHEUmQLMA5jmPW0Ee1l4yuQBMSaAMwSRI0zl3XsSFq
MKFaTbzI6AoUIOR5vjPB0/BKOBuprjK2x5kJCJNpmvD0T2k/BtyJHNU0gCnVn9J2DBk+TOC67p/xP4gz
Ppw5aH4D3/f5A8rIBj18Ers2b0Fu5iGjKxAtDMPdMBaGGvmu6feOHiQwjN9LZunt0jy6azoj5Rc0vFLT
NLxkLJoGp4tCQI1Yoh+v1Pd9ycIwDLzjEntzPgHpD/wXsLl0jrRzIPx1WIP67sQStJRS/6CyvgGjI/3S
/lGAOgAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>

View File

@ -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

View File

@ -121,7 +121,7 @@
<data name="PictureEdit1.EditValue" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAyAAAADICAYAAAAQj4UaAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
EAAACxABrSO9dQAASudJREFUeF7tvWusZNd5nukfcpSOmmre3Wp2s3lrdpNUk01RPxIk6iBBIjFxMBPZ
DwAACw8BkvkDpQAASudJREFUeF7tvWusZNd5nukfcpSOmmre3Wp2s3lrdpNUk01RPxIk6iBBIjFxMBPZ
DGxLEyB2M8ggkegAsSRElikHEsnBJFZrRjZtxZIpZaIZRy2AloGxrAHIRKIQRIqVGJ6AsJEAAwgDOzNJ
HCBSLsqfynmq+HV9tepd+1KnLnufen88OKf2rfa67HPed3/rW+t7PnffoxNjjDHGGLNb/n4L/9t9l6b8
vXsX+ewBn1ngkSkvCH79hy9NXr5yafKbz1yavHr10uRfv/jo5Pe//Ohk8uoMfmcb+ziGYznnc4/q663C

View File

@ -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")