V 1.7 Test ByteData
This commit is contained in:
parent
3d07cdb488
commit
797a01245a
@ -135,6 +135,7 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="TempFiles.vb" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
|
||||
@ -19,11 +19,14 @@ Public Class EmailService
|
||||
Private _Encryption As EncryptionLegacy
|
||||
Private _EmailQueue As BackgroundWorker
|
||||
Private _QueueTimer As Timer
|
||||
Private _TempFiles As TempFiles
|
||||
Private _AnyDatabaseInitialized As Boolean = False
|
||||
Private _limilab As Limilab
|
||||
Private _MailSender As Mail.MailSender
|
||||
Private _AttachmentByteData As Byte()
|
||||
Private ReadOnly _messageSend As Boolean = False
|
||||
|
||||
|
||||
Private Enum DatabaseType
|
||||
Firebird
|
||||
MSSQL
|
||||
@ -77,7 +80,8 @@ Public Class EmailService
|
||||
End If
|
||||
|
||||
_AnyDatabaseInitialized = _Firebird?._DBInitialized Or _MSSQL?.DBInitialized Or _MSSQL_Test?.DBInitialized
|
||||
|
||||
_TempFiles = New TempFiles(_LogConfig)
|
||||
_TempFiles.Create()
|
||||
' === Initialize Email ===
|
||||
|
||||
_Logger.Debug("Inititalize Email")
|
||||
@ -372,6 +376,8 @@ Public Class EmailService
|
||||
Dim oSubject = String.Empty
|
||||
Dim oBody = String.Empty
|
||||
Dim oAddedWhen = Now
|
||||
Dim ATT1_RELATED_ID = String.Empty
|
||||
Dim ATT1_REL_TYPE = String.Empty
|
||||
|
||||
Select Case Database
|
||||
Case DatabaseType.Firebird
|
||||
@ -409,16 +415,32 @@ Public Class EmailService
|
||||
oAddedWhen = oRow.ItemEx("ADDED_WHEN", Now)
|
||||
|
||||
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
|
||||
|
||||
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.ToString.Contains("\") Then
|
||||
If File.Exists(oAttachment) = False Then
|
||||
_Logger.Warn($"Email Attachment [{oAttachment}] not existing!")
|
||||
oComment = $"Email Attachment [{oAttachment}] not existing!"
|
||||
_Logger.Warn($"Email Attachment [{oAttachment}] Not existing!")
|
||||
oComment = $"Email Attachment [{oAttachment}] Not existing!"
|
||||
oAttachment = String.Empty
|
||||
Else
|
||||
_Logger.Debug("Email Attachment is: {0}", oAttachment)
|
||||
_Logger.Debug("Email Attachment Is: {0}", oAttachment)
|
||||
End If
|
||||
End If
|
||||
|
||||
@ -505,12 +527,61 @@ Public Class EmailService
|
||||
Return False
|
||||
End Try
|
||||
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()
|
||||
Try
|
||||
_Logger.Warn("Service {0} was stopped.", ServiceName)
|
||||
_TempFiles.CleanUp()
|
||||
Catch ex As Exception
|
||||
_Logger.Warn("Error while stopping service!")
|
||||
_Logger.Error(ex)
|
||||
|
||||
@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.6.0.0")>
|
||||
<Assembly: AssemblyVersion("1.7.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