FileFlow/Global_Indexer/ClassIndexFunctions.vb
2024-09-23 17:14:28 +02:00

92 lines
3.9 KiB
VB.net

Imports System.IO
Imports DigitalData.GUIs.Common
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(pForm As Form, pFilepath As String, pModuleTitle As String, Optional pHandleType As String = "")
Dim oFileInfo As New FileInfo(pFilepath)
Dim oFormHelper As New FormHelper(LOGCONFIG, pForm)
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 = $"fileFLOW - {pModuleTitle}"
Dim oMessage As String
If USER_LANGUAGE = "de-DE" Then
oMessage = $"Die Datei [{oFilename}] wurde bereits am [{oDate}] verarbeitet.{vbNewLine}{vbNewLine}Wollen Sie die gleiche Datei noch einmal verarbeiten?"
Else
oMessage = $"The file [{oFilename}] has already been processed at [{oDate}].{vbNewLine}{vbNewLine}Do you want to process the same file again?"
End If
oResult = oFormHelper.ShowQuestionMessage(oMessage, oBoxTitle)
'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