V 1.7 Test ByteData
This commit is contained in:
parent
3d07cdb488
commit
797a01245a
@ -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">
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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")>
|
||||||
|
|||||||
60
Services.EmailService/TempFiles.vb
Normal file
60
Services.EmailService/TempFiles.vb
Normal 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
|
||||||
Loading…
x
Reference in New Issue
Block a user