EMail Service: Youtrack ES-3

Comment-Feld wird überschrieben, weil das Replace vermutlich nicht funktionierte
This commit is contained in:
PitzM 2024-06-28 12:57:48 +02:00
parent 40d9cef351
commit b3cc85278d

View File

@ -6,6 +6,7 @@ Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Messaging
Imports DigitalData.Modules.Config
Imports FirebirdSql.Data
Public Class EmailService
Private _Logger As Logger
@ -457,16 +458,10 @@ Public Class EmailService
Select Case Database
Case DatabaseType.Firebird
oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}"
If oSQL.Contains(",COMMENT = ''") Then
oSQL.Replace(",COMMENT = ''", "")
End If
oSQL = GetFirebirdUpdateString(oComment, oGuid)
_Firebird.ExecuteNonQuery(oSQL)
Case DatabaseType.MSSQL
oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE(),COMMENT = '{oComment}' WHERE GUID = {oGuid} "
If oSQL.Contains(",COMMENT = ''") Then
oSQL.Replace(",COMMENT = ''", "")
End If
oSQL = GetSQLUpdateString(oComment, oGuid)
MSSQLInstance.ExecuteNonQuery(oSQL)
End Select
_Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo}")
@ -476,27 +471,14 @@ Public Class EmailService
oFailedSent.Add(oEmailTo)
Select Case Database
Case DatabaseType.MSSQL
oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET ERROR_TIMESTAMP = GETDATE(),ERROR_MSG = '{_limilab.ErrorMessage}' WHERE GUID = {oGuid} "
MSSQLInstance.ExecuteNonQuery(oSQL)
If _messageSend = True Then
Select Case Database
Case DatabaseType.Firebird
oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}"
If oSQL.Contains(",COMMENT = ''") Then
oSQL.Replace(",COMMENT = ''", "")
End If
_Firebird.ExecuteNonQuery(oSQL)
Case DatabaseType.MSSQL
oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE(),COMMENT = '{oComment}' WHERE GUID = {oGuid} "
If oSQL.Contains(",COMMENT = ''") Then
oSQL.Replace(",COMMENT = ''", "")
End If
MSSQLInstance.ExecuteNonQuery(oSQL)
End Select
_Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo} - although there was an error in connection close!")
If _messageSend = True Then
oSQL = GetSQLUpdateString(oComment, oGuid)
MSSQLInstance.ExecuteNonQuery(oSQL)
_Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo} - although there was an error in connection close!")
End If
End Select
@ -527,6 +509,30 @@ Public Class EmailService
Return False
End Try
End Function
Private Function GetSQLUpdateString(pComment As String, pGuid As Integer) As String
Dim oSQL As String = "UPDATE TBEMLP_EMAIL_OUT SET "
oSQL += " EMAIL_SENT = GETDATE() "
If String.IsNullOrEmpty(pComment) = False Then
oSQL += $", COMMENT = '{pComment}' "
End If
oSQL += $" WHERE Guid = {pGuid}"
Return oSQL
End Function
Private Function GetFirebirdUpdateString(pComment As String, pGuid As Integer) As String
' Vermutlich wird das nicht mehr gebraucht?
Dim oSQL As String = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{pComment}' WHERE GUID = {pGuid}"
If oSQL.Contains(",COMMENT = ''") Then
oSQL.Replace(",COMMENT = ''", "")
End If
Return oSQL
End Function
Private Sub GetEnvelope_Result_FileStreamByte(ByVal pEnvID As Long, pMSSQL As MSSQLServer)
Dim strSql As String