68 lines
3.2 KiB
VB.net
68 lines
3.2 KiB
VB.net
Imports System.Data.SqlClient
|
|
Imports DigitalData.Modules.Database
|
|
Imports DigitalData.Modules.Logging
|
|
Imports Microsoft.VisualBasic.FileIO
|
|
|
|
Namespace ZUGFeRD
|
|
Public Class HistoryFunctions
|
|
Private ReadOnly _logConfig As LogConfig
|
|
Private ReadOnly _logger As Logger
|
|
Private ReadOnly _mssql As MSSQLServer
|
|
|
|
Public Sub New(LogConfig As LogConfig, MSSQL As MSSQLServer)
|
|
_logConfig = LogConfig
|
|
_logger = _logConfig.GetLogger()
|
|
_mssql = MSSQL
|
|
End Sub
|
|
|
|
Public Function Create_HistoryEntry(MessageId As String, MD5Checksum As String, Message As String, Transaction As SqlTransaction) As Boolean
|
|
Try
|
|
_logger.Info("Creating History Entry for MessageId [{0}] with comment [{1}]", MessageId, Message)
|
|
Dim oSQL = $"INSERT INTO TBEMLP_HISTORY (COMMENT, MD5HASH, EMAIL_MSGID) VALUES ('{Message}', '{MD5Checksum}', '{MessageId}')"
|
|
|
|
Using oConnection = _mssql.GetConnection()
|
|
' 09.07.2021: This can't be in the transaction since the history
|
|
' Entry needs to be accessed by MoveAndRenameEmailToRejected shortly after
|
|
_mssql.ExecuteNonQueryWithConnectionObject(oSQL, oConnection)
|
|
|
|
If Message.Contains("REJECTED") Then
|
|
oSQL = $"UPDATE TBEMLP_HISTORY SET STATUS = 'REJECTED', COMMENT = '{Message}', CUST_REJECTED = 1,CUST_REJECTED_WHEN = GETDATE() WHERE EMAIL_MSGID = '{MessageId}'"
|
|
_mssql.ExecuteNonQueryWithConnectionObject(oSQL, oConnection)
|
|
End If
|
|
|
|
_logger.Debug("History Entry created!")
|
|
End Using
|
|
|
|
Return True
|
|
Catch ex As Exception
|
|
_logger.Warn("History Entry count not be created for message id [{0}] and md5 [{1}]", MessageId, MD5Checksum)
|
|
_logger.Error(ex)
|
|
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Public Function Update_HistoryEntry(MessageId As String, MD5Checksum As String, Message As String, Transaction As SqlTransaction) As Boolean
|
|
Try
|
|
_logger.Info("Updating History Entry for MessageId [{0}] with comment [{1}]", MessageId, Message)
|
|
' Only look for history entry by MessageId since the MD5 Hash might not be generated yet
|
|
|
|
Using oConnection = _mssql.GetConnection()
|
|
' 09.07.2021: This can't be in the transaction since the history
|
|
' Entry needs to be accessed by MoveAndRenameEmailToRejected shortly after
|
|
Dim oSQL = $"UPDATE TBEMLP_HISTORY SET COMMENT = '{Message}' WHERE EMAIL_MSGID = '{MessageId}'"
|
|
_mssql.ExecuteNonQueryWithConnectionObject(oSQL, oConnection)
|
|
End Using
|
|
|
|
_logger.Debug("History Entry created!")
|
|
|
|
Return True
|
|
Catch ex As Exception
|
|
_logger.Warn("History Entry count not be updated for message id [{0}] and md5 [{1}]", MessageId, MD5Checksum)
|
|
_logger.Error(ex)
|
|
|
|
Return False
|
|
End Try
|
|
End Function
|
|
End Class
|
|
End Namespace |