Imports System.IO Public Class ClassIndexFunctions Public Shared Function FileExistsinDropTable(pFilename As String, pHandleType As String) As Date Dim oSQL As String Dim oHash As String Try If pFilename.Contains("'") Then pFilename = pFilename.Replace("'", "''") End If If pFilename.ToUpper.EndsWith(".MSG") And (pHandleType = "|OUTLOOK_MESSAGE|" Or pHandleType = "|MSGONLY|") Then ' MSG Files cannot be hashed based on filecontents, so we use the filename instead oHash = FILESYSTEM.GetChecksumFromString(pFilename) Else ' If file cannot be accessed, checksum cannot be generated ' In this case, the file should be treated as not yet existing oHash = FILESYSTEM.GetChecksum(pFilename) End If If oHash Is Nothing Then LOGGER.Warn("Checksum for file {0} could not be generated. Treating as new file.", pFilename) Return Nothing End If '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 Is Nothing Then 'Return Nothing 'End If 'If oResult.Rows.Count = 0 Then oSQL = "SELECT * FROM TBGI_HISTORY WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') ORDER BY ADDED_WHEN" 'Dim oResult = ClassDatabase.Return_Datatable_CS(oSQL, MyConnectionString, True) Dim oResult = DATABASE_ECM.GetDatatable(oSQL) If oResult Is Nothing Then Return Nothing End If If oResult.Rows.Count = 0 Then Return Nothing Else Dim oFirstRow As DataRow = oResult.Rows.Item(0) Return oFirstRow.Item("ADDED_WHEN") End If 'Else '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) Return Nothing End Try End Function Public Shared Function CheckDuplicateFiles(pFilepath As String, pModuleTitle As String, Optional pHandleType As String = "") Dim oFileInfo As New FileInfo(pFilepath) Dim oFilename As String = oFileInfo.Name Dim oFileExists As Date = FileExistsinDropTable(pFilepath, pHandleType) If oFileExists.Equals(Date.MinValue) Then Return True Else Dim oResult As DialogResult Dim oDate As String = oFileExists.ToString("d") Dim oBoxTitle = $"GLOBIX - {pModuleTitle}" Dim oMessage As String If USER_LANGUAGE = "de-DE" Then oMessage = $"Die Datei [{oFilename}] wurde bereits am [{oDate}] verarbeitet. Wollen Sie die gleiche Datei noch einmal verarbeiten?" Else oMessage = $"The file [{oFilename}] has already been processed at [{oDate}]. Do you want to process the same file again?" End If oResult = MessageBox.Show(oMessage, oBoxTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) If oResult = DialogResult.Yes Then Return True End If End If Return False End Function End Class