V 1.7 Test ByteData

This commit is contained in:
SchreiberM 2024-06-25 11:23:13 +02:00
parent 3d07cdb488
commit 797a01245a
4 changed files with 138 additions and 6 deletions

View File

@ -135,6 +135,7 @@
<DependentUpon>Settings.settings</DependentUpon> <DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput> <DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile> </Compile>
<Compile Include="TempFiles.vb" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="My Project\Resources.resx"> <EmbeddedResource Include="My Project\Resources.resx">

View File

@ -19,11 +19,14 @@ Public Class EmailService
Private _Encryption As EncryptionLegacy Private _Encryption As EncryptionLegacy
Private _EmailQueue As BackgroundWorker Private _EmailQueue As BackgroundWorker
Private _QueueTimer As Timer Private _QueueTimer As Timer
Private _TempFiles As TempFiles
Private _AnyDatabaseInitialized As Boolean = False Private _AnyDatabaseInitialized As Boolean = False
Private _limilab As Limilab Private _limilab As Limilab
Private _MailSender As Mail.MailSender Private _MailSender As Mail.MailSender
Private _AttachmentByteData As Byte()
Private ReadOnly _messageSend As Boolean = False Private ReadOnly _messageSend As Boolean = False
Private Enum DatabaseType Private Enum DatabaseType
Firebird Firebird
MSSQL MSSQL
@ -77,7 +80,8 @@ Public Class EmailService
End If End If
_AnyDatabaseInitialized = _Firebird?._DBInitialized Or _MSSQL?.DBInitialized Or _MSSQL_Test?.DBInitialized _AnyDatabaseInitialized = _Firebird?._DBInitialized Or _MSSQL?.DBInitialized Or _MSSQL_Test?.DBInitialized
_TempFiles = New TempFiles(_LogConfig)
_TempFiles.Create()
' === Initialize Email === ' === Initialize Email ===
_Logger.Debug("Inititalize Email") _Logger.Debug("Inititalize Email")
@ -372,6 +376,8 @@ Public Class EmailService
Dim oSubject = String.Empty Dim oSubject = String.Empty
Dim oBody = String.Empty Dim oBody = String.Empty
Dim oAddedWhen = Now Dim oAddedWhen = Now
Dim ATT1_RELATED_ID = String.Empty
Dim ATT1_REL_TYPE = String.Empty
Select Case Database Select Case Database
Case DatabaseType.Firebird Case DatabaseType.Firebird
@ -409,16 +415,32 @@ Public Class EmailService
oAddedWhen = oRow.ItemEx("ADDED_WHEN", Now) oAddedWhen = oRow.ItemEx("ADDED_WHEN", Now)
oAttachment = oRow.ItemEx("EMAIL_ATTMT1", String.Empty) oAttachment = oRow.ItemEx("EMAIL_ATTMT1", String.Empty)
ATT1_RELATED_ID = oRow.ItemEx("ATT1_RELATED_ID", String.Empty)
ATT1_REL_TYPE = oRow.ItemEx("ATT1_REL_TYPE", String.Empty)
End Select End Select
If ATT1_RELATED_ID <> String.Empty And ATT1_REL_TYPE <> String.Empty Then
_Logger.Info($"Attachment via byte/ID [{ATT1_RELATED_ID}]...")
If ATT1_REL_TYPE = "EnvelopeResult" Then
GetEnvelope_Result_FileStreamByte(ATT1_RELATED_ID, MSSQLInstance)
End If
If IsNothing(_AttachmentByteData) = False Then
Dim oTempFolder = _TempFiles.TempPath
Dim oTempFilename = String.Concat(oTempFolder, "\", $"SigningReport_{ATT1_RELATED_ID}.pdf")
Dim oFileFromByteData = CreateTempFileFromByte(oTempFilename)
If Not IsNothing(oFileFromByteData) Then
_Logger.Info($"Attachment is [{oFileFromByteData}]!")
oAttachment = oFileFromByteData
End If
End If
End If
If oAttachment <> String.Empty Then If oAttachment <> String.Empty Then
If oAttachment.ToString.Contains("\") Then If oAttachment.ToString.Contains("\") Then
If File.Exists(oAttachment) = False Then If File.Exists(oAttachment) = False Then
_Logger.Warn($"Email Attachment [{oAttachment}] not existing!") _Logger.Warn($"Email Attachment [{oAttachment}] Not existing!")
oComment = $"Email Attachment [{oAttachment}] not existing!" oComment = $"Email Attachment [{oAttachment}] Not existing!"
oAttachment = String.Empty oAttachment = String.Empty
Else Else
_Logger.Debug("Email Attachment is: {0}", oAttachment) _Logger.Debug("Email Attachment Is: {0}", oAttachment)
End If End If
End If End If
@ -505,12 +527,61 @@ Public Class EmailService
Return False Return False
End Try End Try
End Function End Function
Private Sub GetEnvelope_Result_FileStreamByte(ByVal pEnvID As Long, pMSSQL As MSSQLServer)
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 = pMSSQL.GetScalarValue(strSql)
If Not IsDBNull(obyteDB) Then
'Get image data from DB
Dim fileData As Byte() = DirectCast(obyteDB, Byte())
If Not fileData Is Nothing Then
_AttachmentByteData = fileData
Else
_AttachmentByteData = Nothing
End If
Else
_AttachmentByteData = Nothing
End If
Catch ex As Exception
_Logger.Warn($"Error in GetEnvelope_Result_FileStreamByte [{ex.Message}]")
_Logger.Error(ex)
_AttachmentByteData = Nothing
End Try
End Sub
Private Function CreateTempFileFromByte(ByVal sFileName As String) As String
Try
If Not _AttachmentByteData Is Nothing Then
'Read image data into a file stream
Using fs As New FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.Write)
fs.Write(_AttachmentByteData, 0, _AttachmentByteData.Length)
'Set image variable value using memory stream.
fs.Flush()
fs.Close()
End Using
'Open File
Return sFileName
Else
_Logger.Warn($"Error in CreateTempFileFromByte - _AttachmentByteData is nothing!")
Return Nothing
End If
Catch ex As Exception
_Logger.Warn($"Error in CreateTempFileFromByte [{ex.Message}]")
_Logger.Error(ex)
Return Nothing
End Try
End Function
Protected Overrides Sub OnStop() Protected Overrides Sub OnStop()
Try Try
_Logger.Warn("Service {0} was stopped.", ServiceName) _Logger.Warn("Service {0} was stopped.", ServiceName)
_TempFiles.CleanUp()
Catch ex As Exception Catch ex As Exception
_Logger.Warn("Error while stopping service!") _Logger.Warn("Error while stopping service!")
_Logger.Error(ex) _Logger.Error(ex)

View File

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

View File

@ -0,0 +1,60 @@
Imports System.IO
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Public Class TempFiles
Inherits BaseClass
Public Property TempPath As String
Public Sub New(pLogConfig As LogConfig)
MyBase.New(pLogConfig)
Dim oTempDirectoryPath = Path.GetTempPath()
TempPath = Path.Combine(oTempDirectoryPath, "EnvelopeGenerator")
End Sub
Public Function Create() As Boolean
Try
If Directory.Exists(TempPath) = False Then
Directory.CreateDirectory(TempPath)
Else
CleanUpFiles()
End If
Return True
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Private Function CleanUpFiles() As Boolean
Try
For Each fileItem As String In Directory.GetFiles(TempPath)
Logger.Debug("Deleting tempPath-file: {0} ...", fileItem)
File.Delete(fileItem)
Next
Return True
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Public Function CleanUp() As Boolean
Try
Logger.Debug("Deleting tempPath-Data: {0} ...", TempPath)
Directory.Delete(TempPath, True)
Return True
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
End Class