3 Commits

Author SHA1 Message Date
Jonathan Jenne
30c602a9bf clean up 2023-12-20 15:09:10 +01:00
Jonathan Jenne
5b2ba2eff2 Jobs: Version 2.3.0.0 2023-12-20 15:09:06 +01:00
Jonathan Jenne
04577f3b61 Jobs: add check for file age 2023-12-20 15:08:04 +01:00
7 changed files with 26 additions and 20 deletions

View File

@@ -1,5 +1,4 @@
Imports System.IO
Imports System.Windows.Forms
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging

View File

@@ -9,7 +9,6 @@ Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Interfaces
Imports DigitalData.Modules.Jobs.GraphQL
Imports DigitalData.Modules.Language
Imports DigitalData.Modules.Logging
Imports Newtonsoft.Json.Linq

View File

@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("Modules.Jobs")>
<Assembly: AssemblyCopyright("Copyright © 2023")>
<Assembly: AssemblyTrademark("2.2.0.0")>
<Assembly: AssemblyTrademark("2.3.0.0")>
<Assembly: ComVisible(False)>
@@ -30,5 +30,5 @@ Imports System.Runtime.InteropServices
' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
' übernehmen, indem Sie "*" eingeben:
<Assembly: AssemblyVersion("2.2.0.0")>
<Assembly: AssemblyFileVersion("2.2.0.0")>
<Assembly: AssemblyVersion("2.3.0.0")>
<Assembly: AssemblyFileVersion("2.3.0.0")>

View File

@@ -141,17 +141,6 @@ Namespace ZUGFeRD
End If
End Function
Public Function GetEmailPathWithSubjectAsName(RejectedEmailDirectory As String, UncleanedSubject As String) As String
Dim oCleanSubject = String.Join("", UncleanedSubject.Split(Path.GetInvalidPathChars()))
Dim oAttachmentDirectory = RejectedEmailDirectory
Dim oAttachmentFile = oCleanSubject & ".eml"
_logger.Debug("Email Filename is [{0}]", oAttachmentFile)
Dim oAttachmentPath = Path.Combine(oAttachmentDirectory, oAttachmentFile)
Return oAttachmentPath
End Function
Private Function RandomValue(lowerBound As Integer, upperBound As Integer) As Integer
Dim oRandomValue = CInt(Math.Floor((upperBound - lowerBound + 1) * Rnd())) + lowerBound
Return oRandomValue

View File

@@ -10,18 +10,20 @@ Namespace ZUGFeRD
Public Class FileFunctions
Private ReadOnly _logConfig As LogConfig
Private ReadOnly _logger As Logger
Private ReadOnly _mssql As MSSQLServer
Private ReadOnly _filesystem As FilesystemEx
Private ReadOnly _email As ZUGFeRD.EmailFunctions
Public Sub New(pLogConfig As LogConfig, pMSSQL As MSSQLServer)
_logConfig = pLogConfig
_logger = _logConfig.GetLogger()
_mssql = pMSSQL
_email = New EmailFunctions(pLogConfig, pMSSQL)
_filesystem = New FilesystemEx(pLogConfig)
End Sub
Public Function CheckFileAge(oFiles As List(Of FileInfo), pMinFileAge As Integer)
Return oFiles.Where(Function(f) Now.Subtract(f.CreationTime).Minutes < pMinFileAge).Any()
End Function
Public Sub MoveFiles(
pArgs As WorkerArgs,
pMessageId As String,
@@ -143,9 +145,9 @@ Namespace ZUGFeRD
' If oEmailData is Nothing, TBEDM_EMAIL_PROFILER_HISTORY for MessageId was not found.
' This only should happen when testing and db-tables are deleted frequently
If oEmailData Is Nothing Then
oDestination = _email.GetEmailPathWithSubjectAsName(oRejectedDirectory, pMessageId)
oDestination = GetEmailPathWithSubjectAsName(oRejectedDirectory, pMessageId)
Else
oDestination = _email.GetEmailPathWithSubjectAsName(oRejectedDirectory, StringEx.ConvertTextToSlug(oEmailData.Subject))
oDestination = GetEmailPathWithSubjectAsName(oRejectedDirectory, StringEx.ConvertTextToSlug(oEmailData.Subject))
End If
_logger.Debug("Destination for eml file is {0}", oDestination)
@@ -175,6 +177,17 @@ Namespace ZUGFeRD
Return oEmailData
End Function
Public Function GetEmailPathWithSubjectAsName(RejectedEmailDirectory As String, UncleanedSubject As String) As String
Dim oCleanSubject = String.Join("", UncleanedSubject.Split(Path.GetInvalidPathChars()))
Dim oAttachmentDirectory = RejectedEmailDirectory
Dim oAttachmentFile = oCleanSubject & ".eml"
_logger.Debug("Email Filename is [{0}]", oAttachmentFile)
Dim oAttachmentPath = Path.Combine(oAttachmentDirectory, oAttachmentFile)
Return oAttachmentPath
End Function
End Class
End Namespace

View File

@@ -162,6 +162,11 @@ Public Class ImportZUGFeRDFiles
_logger.Info("Start processing file group {0}", oMessageId)
If _file.CheckFileAge(oFileGroupFiles, oArgs.MinFileAgeInMinutes) Then
_logger.Info("At least one file was created less than [{0}] minutes ago. Skipping file group.")
Continue For
End If
Dim oEmailDataBase = _email.GetEmailDataForMessageId(oMessageId)
Try

View File

@@ -21,6 +21,7 @@ Public Class WorkerArgs
Public ExceptionEmailAddress As String = Nothing
Public IgnoreRejectionStatus As Boolean = False
Public MaxAttachmentSizeInMegaBytes As Integer = -1
Public MinFileAgeInMinutes As Integer = 5
Public NamePortal As String = "NO PORTAL_NAME IN CONFIG"
Public AllowFacturX As Boolean = True