From b3cc85278d8cc49b01acd13acbef6109b9235acb Mon Sep 17 00:00:00 2001 From: pitzm Date: Fri, 28 Jun 2024 12:57:48 +0200 Subject: [PATCH] =?UTF-8?q?EMail=20Service:=20Youtrack=20ES-3=20Comment-Fe?= =?UTF-8?q?ld=20wird=20=C3=BCberschrieben,=20weil=20das=20Replace=20vermut?= =?UTF-8?q?lich=20nicht=20funktionierte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Services.EmailService/EmailService.vb | 54 +++++++++++++++------------ 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/Services.EmailService/EmailService.vb b/Services.EmailService/EmailService.vb index 3a40e59b..cb8f89f9 100644 --- a/Services.EmailService/EmailService.vb +++ b/Services.EmailService/EmailService.vb @@ -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 + 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