diff --git a/Config/ConfigUtils.vb b/Config/ConfigUtils.vb index 8bb41351..e27835f4 100644 --- a/Config/ConfigUtils.vb +++ b/Config/ConfigUtils.vb @@ -1,5 +1,4 @@ Imports System.IO -Imports System.Windows.Forms Imports DigitalData.Modules.Base Imports DigitalData.Modules.Logging diff --git a/Interfaces/ZUGFeRDInterface/PDFConverter.vb b/Interfaces/ZUGFeRDInterface/PDFConverter.vb index 19caa813..678ec3ce 100644 --- a/Interfaces/ZUGFeRDInterface/PDFConverter.vb +++ b/Interfaces/ZUGFeRDInterface/PDFConverter.vb @@ -1,4 +1,6 @@ -Imports DigitalData.Modules.Logging +Imports System.IO +Imports DigitalData.Modules.Interfaces.Exceptions +Imports DigitalData.Modules.Logging Imports GdPicture14 Public Class PDFConverter @@ -58,5 +60,9 @@ Public Class PDFConverter _Logger.Error(ex) Return False End Try + + End Function + + End Class diff --git a/Jobs/GraphQL/GraphQLJob.vb b/Jobs/GraphQL/GraphQLJob.vb index b7cae23a..cad98f37 100644 --- a/Jobs/GraphQL/GraphQLJob.vb +++ b/Jobs/GraphQL/GraphQLJob.vb @@ -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 diff --git a/Jobs/My Project/AssemblyInfo.vb b/Jobs/My Project/AssemblyInfo.vb index 55c5e730..67eb2993 100644 --- a/Jobs/My Project/AssemblyInfo.vb +++ b/Jobs/My Project/AssemblyInfo.vb @@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices - + @@ -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: - - + + diff --git a/Jobs/ZUGFeRD/EmailFunctions.vb b/Jobs/ZUGFeRD/EmailFunctions.vb index 6b41b4cb..3d7562c8 100644 --- a/Jobs/ZUGFeRD/EmailFunctions.vb +++ b/Jobs/ZUGFeRD/EmailFunctions.vb @@ -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 diff --git a/Jobs/ZUGFeRD/FileFunctions.vb b/Jobs/ZUGFeRD/FileFunctions.vb index 920752c5..e0060913 100644 --- a/Jobs/ZUGFeRD/FileFunctions.vb +++ b/Jobs/ZUGFeRD/FileFunctions.vb @@ -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 diff --git a/Jobs/ZUGFeRD/ImportZUGFeRDFiles.vb b/Jobs/ZUGFeRD/ImportZUGFeRDFiles.vb index ffa2b311..e843ae64 100644 --- a/Jobs/ZUGFeRD/ImportZUGFeRDFiles.vb +++ b/Jobs/ZUGFeRD/ImportZUGFeRDFiles.vb @@ -160,7 +160,12 @@ Public Class ImportZUGFeRDFiles Dim oMessageId As String = oFileGroup.Key Dim oMD5CheckSum As String = String.Empty - _logger.Info("Start processing file group {0}", oMessageId) + _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.", oArgs.MinFileAgeInMinutes) + Continue For + End If Dim oEmailDataBase = _email.GetEmailDataForMessageId(oMessageId) @@ -373,7 +378,7 @@ Public Class ImportZUGFeRDFiles ' Move all files of the current group _file.MoveFiles(oArgs, oMessageId, oFileGroupFiles, oEmailAttachmentFiles, oEmbeddedAttachmentFiles, oMoveDirectory, oIsSuccess) End If - _logger.Info("Finished processing file group {0}", oMessageId) + _logger.Info("END processing file group {0}", oMessageId) Catch ex As Exception ' Send Email to Digital Data Dim oBody = _email.CreateBodyForUnhandledException(oMessageId, ex) diff --git a/Jobs/ZUGFeRD/WorkerArgs.vb b/Jobs/ZUGFeRD/WorkerArgs.vb index 9367384a..154b150e 100644 --- a/Jobs/ZUGFeRD/WorkerArgs.vb +++ b/Jobs/ZUGFeRD/WorkerArgs.vb @@ -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