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 - _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