Jobs/Zugferd: Improve structure
This commit is contained in:
68
Jobs/ZUGFeRD/HistoryFunctions.vb
Normal file
68
Jobs/ZUGFeRD/HistoryFunctions.vb
Normal file
@@ -0,0 +1,68 @@
|
||||
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
|
||||
Reference in New Issue
Block a user