diff --git a/Global_Indexer/ClassDatabase.vb b/Global_Indexer/ClassDatabase.vb index b56bd2d..6eba046 100644 --- a/Global_Indexer/ClassDatabase.vb +++ b/Global_Indexer/ClassDatabase.vb @@ -109,7 +109,7 @@ Public Class ClassDatabase Return Nothing End Try End Function - Public Shared Function Return_Datatable_CS(sql_command As String, ConString As String, Optional userInput As Boolean = False) + Public Shared Function Return_Datatable_CS(sql_command As String, ConString As String, Optional userInput As Boolean = False) As DataTable Try Dim SQLconnect As New SqlConnection Dim SQLcommand As SqlCommand @@ -138,7 +138,7 @@ Public Class ClassDatabase LOGGER.Info("#SQL: " & sql_command) End If - Return False + Return Nothing Catch ex As Exception If userInput = True Then MsgBox("Error in Return_Datatable_CS - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical) diff --git a/Global_Indexer/ClassFolderWatcher.vb b/Global_Indexer/ClassFolderWatcher.vb index 5fcefa6..61ee841 100644 --- a/Global_Indexer/ClassFolderWatcher.vb +++ b/Global_Indexer/ClassFolderWatcher.vb @@ -122,7 +122,7 @@ Public Class ClassFolderWatcher End If End If If FolderWatcher_SCAN Is Nothing Then - FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*") + FolderWatcher_SCAN = New FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*") LOGGER.Info(" >> FolderWatch Scan Gestartet") FolderWatcher_SCAN.IncludeSubdirectories = False FolderWatcher_SCAN.EnableRaisingEvents = True @@ -134,7 +134,7 @@ Public Class ClassFolderWatcher If FolderWatcher_SCAN.EnableRaisingEvents = False Then ' Dim watcher As New FileSystemWatcher() ' watcher.Path = CURRENT_FOLDERWATCH - FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*") + FolderWatcher_SCAN = New FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*") LOGGER.Info(" >> FolderWatch Scan Gestartet") FolderWatcher_SCAN.IncludeSubdirectories = False FolderWatcher_SCAN.EnableRaisingEvents = True @@ -185,18 +185,32 @@ Public Class ClassFolderWatcher End If Next - Dim handleType As String + Dim oHandleType As String If e.FullPath.ToLower.EndsWith(".msg") Then - handleType = "|FW_OUTLOOK_MESSAGE|" + oHandleType = "|FW_OUTLOOK_MESSAGE|" Else - handleType = "|FW_SIMPLEINDEXER|" + oHandleType = "|FW_SIMPLEINDEXER|" End If 'Die Datei übergeben LOGGER.Info(">> OnCreated-File:" & e.FullPath) - If ClassIndexFunctions.FileExistsinDropTable(e.FullPath) = False Then - ClassFilehandle.Decide_FileHandle(e.FullPath, handleType) + + Dim oFileExists As Date = ClassIndexFunctions.FileExistsinDropTable(e.FullPath) + + If IsNothing(oFileExists) Then + ClassFilehandle.Decide_FileHandle(e.FullPath, oHandleType) Else - LOGGER.Info(">> Folderwatcher: File already exists:" & e.FullPath) + Dim oResult As DialogResult + Dim oDate As String = oFileExists.ToString("d") + + If USER_LANGUAGE = "de-DE" Then + oResult = MsgBox($"Die Datei wurde bereits am [{oDate}] verarbeitet. Wollen Sie die gleiche Datei noch einmal verarbeiten?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "GLOBIX - FolderWatch") + Else + oResult = MsgBox($"This file has already been processed at [{oDate}]. Do you want to process the same file again?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "GLOBIX - FolderWatch") + End If + + If oResult = DialogResult.Yes Then + ClassFilehandle.Decide_FileHandle(e.FullPath, oHandleType) + End If End If Catch ex As Exception diff --git a/Global_Indexer/ClassIndexFunctions.vb b/Global_Indexer/ClassIndexFunctions.vb index 56d07d8..a1a0b35 100644 --- a/Global_Indexer/ClassIndexFunctions.vb +++ b/Global_Indexer/ClassIndexFunctions.vb @@ -1,5 +1,5 @@ Public Class ClassIndexFunctions - Public Shared Function FileExistsinDropTable(Filename As String) + Public Shared Function FileExistsinDropTable(Filename As String) As DateTime Dim oSQL As String Dim oHash As String @@ -15,20 +15,30 @@ oHash = "" End Try - oSQL = "SELECT COUNT(*) FROM TBGI_FILES_USER WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') AND WORKED = 0" - Dim oResult = ClassDatabase.Execute_Scalar(oSQL, MyConnectionString, True) + oSQL = "SELECT * FROM TBGI_FILES_USER WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') AND WORKED = 0 ORDER BY ADDED_WHEN" + Dim oResult As DataTable = ClassDatabase.Return_Datatable_CS(oSQL, MyConnectionString, True) - If oResult = 0 Then - oSQL = "SELECT COUNT(*) FROM TBGI_HISTORY WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "')" - oResult = ClassDatabase.Execute_Scalar(oSQL, MyConnectionString, True) + If oResult Is Nothing Then + Return Nothing + End If - If oResult = 0 Then - Return False + If oResult.Rows.Count = 0 Then + oSQL = "SELECT * FROM TBGI_HISTORY WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') ORDER BY ADDED_WHEN" + oResult = ClassDatabase.Return_Datatable_CS(oSQL, MyConnectionString, True) + + If oResult Is Nothing Then + Return Nothing + End If + + If oResult.Rows.Count = 0 Then + Return Nothing Else - Return True + Dim oFirstRow As DataRow = oResult.Rows.Item(0) + Return oFirstRow.Item("ADDED_WHEN") End If Else - Return True + Dim oFirstRow As DataRow = oResult.Rows.Item(0) + Return oFirstRow.Item("ADDED_WHEN") End If Catch ex As Exception MsgBox("Error in FileExistsinDropTable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & oSQL, MsgBoxStyle.Critical) diff --git a/Global_Indexer/frmStart.vb b/Global_Indexer/frmStart.vb index 5ffe6ad..1c4bcf3 100644 --- a/Global_Indexer/frmStart.vb +++ b/Global_Indexer/frmStart.vb @@ -168,26 +168,25 @@ Public Class frmStart Dim oLastPipe = oFiledropString.LastIndexOf("|") Dim oHandleType As String = oFiledropString.Substring(0, oLastPipe + 1) Dim oFilename As String = oFiledropString.Substring(oLastPipe + 1) - Dim oFileExists As Boolean = ClassIndexFunctions.FileExistsinDropTable(oFilename) + Dim oFileExists As Date = ClassIndexFunctions.FileExistsinDropTable(oFilename) - If oFileExists = False Then + If IsNothing(oFileExists) Then ClassFilehandle.Decide_FileHandle(oFilename, oHandleType) oIndex += 1 - ElseIf oFileExists Then + Else Dim oResult As DialogResult + Dim oDate As String = oFileExists.ToString("d") If USER_LANGUAGE = "de-DE" Then - oResult = MsgBox("Die Datei wurde bereits verarbeitet. Wollen Sie die gleiche Datei noch einmal verarbeiten?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) + oResult = MsgBox($"Die Datei wurde bereits am [{oDate}] verarbeitet. Wollen Sie die gleiche Datei noch einmal verarbeiten?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "GLOBIX - FolderWatch") Else - oResult = MsgBox("This file has already been processed. Do you want to process the same file again?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) + oResult = MsgBox($"This file has already been processed at [{oDate}]. Do you want to process the same file again?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "GLOBIX - FolderWatch") End If If oResult = DialogResult.Yes Then ClassFilehandle.Decide_FileHandle(oFilename, oHandleType) oIndex += 1 End If - Else - End If End If Next @@ -216,7 +215,7 @@ Public Class frmStart CURRENT_FILENAME = Filerow.Item("FILENAME2WORK") CURRENT_WORKFILE_GUID = Filerow.Item(0) CURRENT_WORKFILE = Filerow.Item("FILENAME2WORK") - CURRENT_WORKFILE_HASH = Filerow.Item("FILE_HASH") + CURRENT_WORKFILE_HASH = NotNull(Filerow.Item("FILE_HASH"), "") LOGGER.Info(">> CURRENT_WORKFILE: " & CURRENT_WORKFILE) If File.Exists(CURRENT_WORKFILE) = True And DTACTUAL_FILES.Rows.Count > 0 Then @@ -356,29 +355,49 @@ Public Class frmStart LOGGER.Info(">> FWSCAN started - Checking file:" & CURRENT_SCAN_FOLDERWATCH) Dim fileEntries As String() = Directory.GetFiles(CURRENT_SCAN_FOLDERWATCH) ' Process the list of files found in the directory. - Dim fileName As String - For Each fileName In fileEntries - LOGGER.Info(">> Scanfolder after startup: Checking file:" & fileName) + Dim oFileName As String + For Each oFileName In fileEntries + LOGGER.Info(">> Scanfolder after startup: Checking file:" & oFileName) For Each row As DataRow In DTEXCLUDE_FILES.Rows Dim content As String = row.Item(0).ToString.ToLower - If fileName.ToLower.Contains(content) Then + If oFileName.ToLower.Contains(content) Then Exit Sub End If Next - Dim handleType As String - If fileName.ToLower.EndsWith(".msg") Then - handleType = "|FW_OUTLOOK_MESSAGE|" + Dim oHandleType As String + If oFileName.ToLower.EndsWith(".msg") Then + oHandleType = "|FW_OUTLOOK_MESSAGE|" Else - handleType = "|FW_SIMPLEINDEXER|" + oHandleType = "|FW_SIMPLEINDEXER|" End If 'Die Datei übergeben - LOGGER.Info(">> Adding file from Scanfolder after startup:" & fileName) - If ClassIndexFunctions.FileExistsinDropTable(fileName) = False Then - ClassFilehandle.Decide_FileHandle(fileName, handleType) + LOGGER.Info(">> Adding file from Scanfolder after startup:" & oFileName) + + Dim oFileExists As Date = ClassIndexFunctions.FileExistsinDropTable(oFileName) + + If IsNothing(oFileExists) Then + ClassFilehandle.Decide_FileHandle(oFileName, oHandleType) Else - LOGGER.Info(">> Scanfolder Startup: File already exists:" & fileName) + Dim oResult As DialogResult + Dim oDate As String = oFileExists.ToString("d") + + If USER_LANGUAGE = "de-DE" Then + oResult = MsgBox($"Die Datei wurde bereits am [{oDate}] verarbeitet. Wollen Sie die gleiche Datei noch einmal verarbeiten?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "GLOBIX - FolderWatch") + Else + oResult = MsgBox($"This file has already been processed at [{oDate}]. Do you want to process the same file again?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "GLOBIX - FolderWatch") + End If + + If oResult = DialogResult.Yes Then + ClassFilehandle.Decide_FileHandle(oFileName, oHandleType) + End If End If - Next fileName + + 'If ClassIndexFunctions.FileExistsinDropTable(fileName) = False Then + ' ClassFilehandle.Decide_FileHandle(fileName, handleType) + 'Else + ' LOGGER.Info(">> Scanfolder Startup: File already exists:" & fileName) + 'End If + Next oFileName Else LOGGER.Info(">> FWSCAN not started") @@ -393,29 +412,50 @@ Public Class frmStart LOGGER.Info(">> FW_started started - Checking file:" & CURRENT_FOLDERWATCH) Dim fileEntries As String() = Directory.GetFiles(CURRENT_FOLDERWATCH) ' Process the list of files found in the directory. - Dim fileName As String - For Each fileName In fileEntries - LOGGER.Info(">> Folderwach after startup: Checking file:" & fileName) + Dim oFileName As String + For Each oFileName In fileEntries + LOGGER.Info(">> Folderwach after startup: Checking file:" & oFileName) For Each row As DataRow In DTEXCLUDE_FILES.Rows Dim content As String = row.Item(0).ToString.ToLower - If fileName.ToLower.Contains(content) Then + If oFileName.ToLower.Contains(content) Then Exit Sub End If Next Dim handleType As String - If fileName.ToLower.EndsWith(".msg") Then + If oFileName.ToLower.EndsWith(".msg") Then handleType = "|FW_OUTLOOK_MESSAGE|" Else handleType = "|FW_SIMPLEINDEXER|" End If 'Die Datei übergeben - LOGGER.Info(">> Adding file from Folderwatch after startup:" & fileName) - If ClassIndexFunctions.FileExistsinDropTable(fileName) = False Then - ClassFilehandle.Decide_FileHandle(fileName, handleType) + LOGGER.Info(">> Adding file from Folderwatch after startup:" & oFileName) + + 'If ClassIndexFunctions.FileExistsinDropTable(fileName) = False Then + ' ClassFilehandle.Decide_FileHandle(fileName, handleType) + 'Else + ' LOGGER.Info(">> Folderwatch Startup: File already exists:" & fileName) + 'End If + + Dim oFileExists As Date = ClassIndexFunctions.FileExistsinDropTable(oFileName) + + If IsNothing(oFileExists) Then + ClassFilehandle.Decide_FileHandle(oFileName, handleType) Else - LOGGER.Info(">> Folderwatch Startup: File already exists:" & fileName) + Dim oResult As DialogResult + Dim oDate As String = oFileName.ToString("d") + + If USER_LANGUAGE = "de-DE" Then + oResult = MsgBox($"Die Datei wurde bereits am [{oDate}] verarbeitet. Wollen Sie die gleiche Datei noch einmal verarbeiten?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "GLOBIX - FolderWatch") + Else + oResult = MsgBox($"This file has already been processed at [{oDate}]. Do you want to process the same file again?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "GLOBIX - FolderWatch") + End If + + If oResult = DialogResult.Yes Then + ClassFilehandle.Decide_FileHandle(oFileName, handleType) + End If End If - Next fileName + + Next oFileName Else LOGGER.Info(">> FW_started not started") @@ -512,9 +552,11 @@ Public Class frmStart Dim fileexists As Boolean = System.IO.File.Exists(FileForWork) If fileInUse = False Then If fileexists = True Then - CURRENT_WORKFILE = FileForWork CURRENT_FILENAME = FileForWork + CURRENT_WORKFILE = FileForWork CURRENT_WORKFILE_GUID = row.Item("GUID") + CURRENT_WORKFILE_HASH = row.Item("FILE_HASH") + Open_IndexDialog() Else LOGGER.Info(">> File not existing - Row will be deleted!")