diff --git a/Services.ZUGFeRDService/Config.vb b/Services.ZUGFeRDService/Config.vb
index 12f30ca8..e1ca2785 100644
--- a/Services.ZUGFeRDService/Config.vb
+++ b/Services.ZUGFeRDService/Config.vb
@@ -1,9 +1,7 @@
Public Class Config
- Public Property Firebird As New FirebirdConfig
Public Property Custom As New CustomConfig
Public Property MSSQLConnectionString As String = ""
- Public Property MSSQLEnabled As Boolean = False
Public Property MSSQLEmailOutAccountID As String = 1
Public Property PORTAL_NAME As String = "WISAG-Portal"
@@ -13,6 +11,15 @@
Public Property Debug As Boolean = False
+ Public Property WatchDirectory As String = String.Empty
+ Public Property SuccessDirectory As String = String.Empty
+ Public Property ErrorDirectory As String = String.Empty
+ Public Property OriginalEmailDirectory As String = String.Empty
+ Public Property RejectedEmailDirectory As String = String.Empty
+ Public Property AttachmentsSubDirectory As String = String.Empty
+ Public Property NonZugferdDirectory As String = String.Empty
+
+
Public Class CustomConfig
'''
''' If the file was already rejected, it is allowed to be processed again,
@@ -30,22 +37,9 @@
'''
Public Property MaxAttachmentSizeInMegaBytes As Integer = -1
-
- Public Property RejectionTransferEnabled As Boolean = True
- Public Property RejectionTransferTimeUnit As String = "HOUR"
- Public Property RejectionTransferTimeValue As Integer = 12
-
Public Property AllowFacturX As Boolean = False
Public Property AllowXRechnung As Boolean = False
Public Property AllowZugferd10 As Boolean = True
Public Property AllowZugferd2x As Boolean = True
End Class
-
- Public Class FirebirdConfig
- Public Property DataSource As String = "172.24.12.41"
- Public Property Database As String = "172.24.12.41:E:\DB\Firebird\Databases\EDMI_TEMPLATE\EDMI_MASTER.FDB"
- Public Property User As String = "sysdba"
- Public Property Password As String = "dd"
-
- End Class
End Class
diff --git a/Services.ZUGFeRDService/My Project/AssemblyInfo.vb b/Services.ZUGFeRDService/My Project/AssemblyInfo.vb
index e8b2c9b7..b63cc0d6 100644
--- a/Services.ZUGFeRDService/My Project/AssemblyInfo.vb
+++ b/Services.ZUGFeRDService/My Project/AssemblyInfo.vb
@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
-
+
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
'
-
-
+
+
diff --git a/Services.ZUGFeRDService/ThreadRunner.vb b/Services.ZUGFeRDService/ThreadRunner.vb
index 7b6ee427..908ba8f3 100644
--- a/Services.ZUGFeRDService/ThreadRunner.vb
+++ b/Services.ZUGFeRDService/ThreadRunner.vb
@@ -1,12 +1,10 @@
Imports System.ComponentModel
Imports System.IO
Imports System.Timers
-Imports System.Xml.XPath
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Interfaces
Imports DigitalData.Modules.Jobs
-Imports DigitalData.Modules.Jobs.ImportZUGFeRDFiles
Imports DigitalData.Modules.Logging
Public Class ThreadRunner
@@ -17,7 +15,6 @@ Public Class ThreadRunner
Private ReadOnly _config As ConfigManager(Of Config)
Private ReadOnly _logConfig As LogConfig
Private ReadOnly _logger As Logger
- Private ReadOnly _firebird As Firebird
Private ReadOnly _jobArguments As WorkerArgs
Private ReadOnly _mssql As MSSQLServer
@@ -27,7 +24,6 @@ Public Class ThreadRunner
Public Sub New(LogConfig As LogConfig, ConfigManager As ConfigManager(Of Config), Firebird As Firebird, Optional MSSQL As MSSQLServer = Nothing)
_logConfig = LogConfig
_logger = _logConfig.GetLogger()
- _firebird = Firebird
_config = ConfigManager
_mssql = MSSQL
Try
@@ -61,12 +57,6 @@ Public Class ThreadRunner
oArgs = LoadFolderConfig(oArgs)
oArgs = LoadPropertyMap(oArgs)
- ' Use MSSQL Server if available
- If Not IsNothing(_mssql) Then
- _logger.Debug("Data will also be inserted into MSSQL Server.")
- oArgs.InsertIntoSQLServer = True
- End If
-
_logger.Debug("Custom Options:")
_logger.Debug("ExceptionEmailAddress: {0}", oArgs.ExceptionEmailAddress)
_logger.Debug("IgnoreRejectionStatus: {0}", oArgs.IgnoreRejectionStatus)
@@ -146,58 +136,12 @@ Public Class ThreadRunner
End If
End Sub
- Private Sub MaybeUpdateRejected()
- Try
- Dim oTimeUnit = _config.Config.Custom.RejectionTransferTimeUnit
- Dim oTimeValue = _config.Config.Custom.RejectionTransferTimeValue
-
- Dim oDifference As TimeSpan = Now - RejectedLastRun
- If oDifference.TotalMinutes < RejectedMaxDifferenceInMinutes Then
- _logger.Debug("Updating rejected files: Waiting for next run.")
- Exit Sub
- End If
-
- _logger.Info("Updating rejected files in Firebird.")
-
- Dim oSQL = $"
- SELECT [EMAIL_MSGID]
- FROM TBEMLP_HISTORY
- WHERE (STATUS = 'REJECTED' OR CUST_REJECTED = 1) AND FB_UPDATED = 0
- AND DATEDIFF({oTimeUnit}, CHANGED_WHEN, GETDATE()) <= {oTimeValue}
- ORDER BY GUID DESC"
- Dim oTable As DataTable = _mssql.GetDatatable(oSQL)
- If Not IsNothing(oTable) Then
- For Each oROW As DataRow In oTable.Rows
- Dim oUpdate = $"UPDATE TBEDM_ZUGFERD_HISTORY_IN SET REJECTED = True WHERE MESSAGE_ID = '{oROW.Item(0)}' and REJECTED = false"
- If _firebird.ExecuteNonQuery(oUpdate) = True Then
- Dim oUpdateSQL = $"
- UPDATE TBEMLP_HISTORY
- SET FB_UPDATED = 1
- WHERE [EMAIL_MSGID] = '{oROW.Item(0)}' AND FB_UPDATED = 0"
-
- _mssql.ExecuteNonQuery(oUpdateSQL)
- End If
- Next
-
- RejectedLastRun = Now
- End If
- Catch ex As Exception
- _logger.Warn("Error while Updating REJECTED State: " & ex.Message)
- End Try
- End Sub
-
Private Sub DoWork(sender As Object, e As DoWorkEventArgs) Handles _workerThread.DoWork
Try
- If _config.Config.Custom.RejectionTransferEnabled = True Then
- MaybeUpdateRejected()
- Else
- _logger.Debug("Transferring rejection status to Firebird is disabled.")
- End If
-
Dim oArgs As WorkerArgs = e.Argument
_logger.Debug("Background worker running..")
- Dim oJob As New ImportZUGFeRDFiles(_logConfig, _firebird, _mssql)
+ Dim oJob As New ImportZUGFeRDFiles(_logConfig, _mssql)
oJob.Start(oArgs)
Catch ex As Exception
_logger.Warn("Background worker failed!")
@@ -210,44 +154,20 @@ Public Class ThreadRunner
End Sub
Private Function LoadFolderConfig(pArgs As WorkerArgs) As WorkerArgs
- Dim oSQL As String = "SELECT T1.FOLDER_TYPE, T.FOLDER_PATH FROM TBEDM_FOLDER T, TBEDM_FOLDER_TYPE T1 WHERE T.FOLDER_TYPE_ID = T1.GUID AND T1.""ACTIVE"" = True AND T.""ACTIVE"" = True"
- Dim oResult As DataTable = _firebird.GetDatatable(oSQL)
-
- For Each oRow As DataRow In oResult.Rows
- Dim oFolderType = oRow.Item("FOLDER_TYPE")
-
- Select Case oFolderType
- Case ZUGFERD_IN
- pArgs.WatchDirectories.Add(oRow.Item("FOLDER_PATH"))
-
- Case ZUGFERD_SUCCESS
- pArgs.SuccessDirectory = oRow.Item("FOLDER_PATH")
-
- Case ZUGFERD_ERROR
- pArgs.ErrorDirectory = oRow.Item("FOLDER_PATH")
-
- Case ZUGFERD_EML
- pArgs.OriginalEmailDirectory = oRow.Item("FOLDER_PATH")
-
- Case ZUGFERD_REJECTED_EML
- pArgs.RejectedEmailDirectory = oRow.Item("FOLDER_PATH")
-
- Case ZUGFERD_ATTACHMENTS
- pArgs.AttachmentsSubDirectory = oRow.Item("FOLDER_PATH")
-
- Case ZUGFERD_NO_ZUGFERD
- _logger.Info($"## {ZUGFERD_NO_ZUGFERD}-Constant has been defined! [{oRow.Item("FOLDER_PATH")}]##")
- pArgs.NonZugferdDirectory = oRow.Item("FOLDER_PATH")
-
- End Select
- Next
+ pArgs.WatchDirectories.Add(_config.Config.WatchDirectory)
+ pArgs.SuccessDirectory = _config.Config.SuccessDirectory
+ pArgs.ErrorDirectory = _config.Config.ErrorDirectory
+ pArgs.OriginalEmailDirectory = _config.Config.OriginalEmailDirectory
+ pArgs.RejectedEmailDirectory = _config.Config.RejectedEmailDirectory
+ pArgs.AttachmentsSubDirectory = _config.Config.AttachmentsSubDirectory
+ pArgs.NonZugferdDirectory = _config.Config.NonZugferdDirectory
Return pArgs
End Function
Private Function LoadPropertyMap(pArgs As WorkerArgs) As WorkerArgs
- Dim oSQL As String = $"SELECT * FROM TBEDM_XML_ITEMS WHERE ACTIVE = True ORDER BY XML_PATH"
- Dim oResult As DataTable = _firebird.GetDatatable(oSQL)
+ Dim oSQL As String = $"SELECT * FROM TBDD_ZUGFERD_XML_ITEMS WHERE ACTIVE = 1 ORDER BY XML_PATH"
+ Dim oResult As DataTable = _mssql.GetDatatable(oSQL)
For Each oRow As DataRow In oResult.Rows
Dim oXmlPath = oRow.Item("XML_PATH")
diff --git a/Services.ZUGFeRDService/ZUGFeRDService.vb b/Services.ZUGFeRDService/ZUGFeRDService.vb
index 96fba05b..cf5bc834 100644
--- a/Services.ZUGFeRDService/ZUGFeRDService.vb
+++ b/Services.ZUGFeRDService/ZUGFeRDService.vb
@@ -20,23 +20,19 @@ Public Class ZUGFeRDService
_logger = _logConfig.GetLogger()
_logger.Info($"{Constants.SERVICE_NAME} is starting.")
- Dim oDataSource As String = _config.Config.Firebird.DataSource
- Dim oDatabase As String = _config.Config.Firebird.Database
- Dim oUser As String = _config.Config.Firebird.User
- Dim oPassword As String = _config.Config.Firebird.Password
Dim oJobInterval As Integer = _config.Config.JobInterval
Dim oMSSQLConnectionString As String = _config.Config.MSSQLConnectionString
- Dim oMSSQLEnabled As Boolean = _config.Config.MSSQLEnabled
- _firebird = New Firebird(_logConfig, oDataSource, oDatabase, oUser, oPassword)
+ If oMSSQLConnectionString = String.Empty Then
+ _logger.Warn("MSSQL Connectionstring is empty. Exiting.")
+ Throw New ArgumentNullException("ConnectionString is missing!")
+ End If
- If oMSSQLEnabled = True Then
- _mssql = New MSSQLServer(_logConfig, oMSSQLConnectionString)
+ _mssql = New MSSQLServer(_logConfig, oMSSQLConnectionString)
- If _mssql.DBInitialized = False Then
- _logger.Warn("MSSQL Connection could not be initialized. Disabling MSSQL.")
- _mssql = Nothing
- End If
+ If _mssql.DBInitialized = False Then
+ _logger.Warn("MSSQL Connection failed. Exiting.")
+ Throw New ApplicationException("Connection failed!")
End If
Try