MS Doppeltprüfung

This commit is contained in:
SchreiberM 2022-02-24 12:08:52 +01:00
parent 540f9f4176
commit 80a541ff36
2 changed files with 41 additions and 9 deletions

View File

@ -1,19 +1,33 @@
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Filesystem
Imports DigitalData.Modules.Logging
Imports System.IO
Imports File = DigitalData.Modules.Filesystem.File
Public Class ClassUserFiles
Inherits BaseClass
Private Property FILESYSTEM As Modules.Filesystem.File
Public Sub New(pLogConfig As LogConfig)
MyBase.New(pLogConfig)
FILESYSTEM = New File(pLogConfig)
End Sub
Public Function Insert_GI_File(filename As String, handleType As String) As Boolean
Try
filename = filename.Replace("'", "''")
Dim filename_only As String = IO.Path.GetFileName(filename)
Dim ins As String = "INSERT INTO TBGI_FILES_USER (FILENAME2WORK, USER@WORK,HANDLE_TYPE,FILENAME_ONLY) VALUES ('" & filename & "','" & Environment.UserName & "','" & handleType & "','" & filename_only & "')"
Dim oHash As String = String.Empty
If IO.File.Exists(filename) Then
If (filename.ToUpper.EndsWith(".MSG") Or filename.ToUpper.EndsWith(".EML")) And (handleType = "|OUTLOOK_MESSAGE|" Or handleType = "|MSGONLY|") Then
oHash = FILESYSTEM.GetChecksumFromString(filename)
Else
oHash = FILESYSTEM.GetChecksum(filename)
End If
End If
Dim filename_only As String = Path.GetFileName(filename)
Dim ins As String = $"INSERT INTO TBGI_FILES_USER (FILENAME2WORK, USER@WORK, HANDLE_TYPE, FILENAME_ONLY, FILE_HASH) VALUES ('{filename}','{Environment.UserName}','{handleType}','{filename_only}', '{oHash}')"
Return My.DatabaseECM.ExecuteNonQuery(ins)
Catch ex As Exception
@ -37,7 +51,7 @@ Public Class ClassUserFiles
oHash = ""
End Try
oSQL = "SELECT * FROM TBGI_FILES_USER WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') AND WORKED = 0 ORDER BY ADDED_WHEN"
oSQL = "SELECT * FROM TBGI_FILES_USER WHERE FILE_HASH = '" & oHash & "' AND WORKED = 0 ORDER BY ADDED_WHEN"
Dim oResult As DataTable = My.DatabaseECM.GetDatatable(oSQL)
If oResult Is Nothing Then
@ -45,8 +59,8 @@ Public Class ClassUserFiles
End If
If oResult.Rows.Count = 0 Then
oSQL = "SELECT * FROM TBGI_HISTORY WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') ORDER BY ADDED_WHEN"
oResult = My.DatabaseECM.GetDatatable(oSQL)
oSQL = "SELECT * FROM TBIDB_FILE_OBJECT WHERE FILE_HASH = '" & oHash & "' ORDER BY ADDED_WHEN"
oResult = My.DatabaseIDB.GetDatatable(oSQL)
If oResult Is Nothing Then
Return Nothing

View File

@ -794,6 +794,7 @@ Public Class frmFlowForm
FileHandle.Decide_FileHandle(fileName, handleType)
Else
IO.File.Delete(fileName)
Logger.Info("Scanfolder Startup: File already exists:" & fileName)
End If
Next fileName
@ -831,6 +832,7 @@ Public Class frmFlowForm
FileHandle.Decide_FileHandle(fileName, handleType)
Else
Logger.Info("Folderwatch Startup: File already exists:" & fileName)
IO.File.Delete(fileName)
End If
Next fileName
@ -875,6 +877,7 @@ Public Class frmFlowForm
Me.TimerFolderwatch.Stop()
For Each row As DataRow In My.Application.Globix.DTACTUAL_FILES.Rows
Dim FILEGUID = row.Item("GUID")
Dim oDel = String.Format("DELETE FROM TBGI_FILES_USER WHERE GUID = {0}", FILEGUID)
If My.Application.Globix.ABORT_INDEXING = True Then
Exit For
End If
@ -886,16 +889,31 @@ Public Class frmFlowForm
Dim fileexists As Boolean = System.IO.File.Exists(FileForWork)
If fileInUse = False Then
If fileexists = True Then
My.Application.Globix.CurrentWorkfile = New Globix.Models.WorkFile With {
Dim handleType As String
If FileForWork.ToLower.EndsWith(".msg") Then
handleType = "|FW_OUTLOOK_MESSAGE|"
Else
handleType = "|FW_SIMPLEINDEXER|"
End If
If FileHandle.CheckDuplicateFiles(FileForWork, "FolderWatch") Then
My.Application.Globix.CurrentWorkfile = New Globix.Models.WorkFile With {
.Id = DirectCast(row.Item("GUID"), Integer),
.FilePath = FileForWork,
.HotfolderFile = True
}
Globix_Open_IndexDialog()
Else
My.Database.ExecuteNonQueryECM(oDel)
IO.File.Delete(FileForWork)
Logger.Info("Folderwatch: File has been deleted:" & FileForWork)
End If
Globix_Open_IndexDialog()
Else
Logger.Info(" File not existing - Row will be deleted!")
Dim oDel = String.Format("DELETE FROM TBGI_FILES_USER WHERE GUID = {0}", FILEGUID)
My.Database.ExecuteNonQueryECM(oDel)
End If
Else