FileFlow/Global_Indexer/ClassFolderWatcher.vb
Jonathan Jenne 1b7675a1b4 BIG CLEANUP
2022-02-15 16:28:43 +01:00

199 lines
8.1 KiB
VB.net

Imports System.IO
Imports System.Threading
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Public Class ClassFolderWatcher
Inherits BaseClass
Public FolderWatcher As FileSystemWatcher
Public FolderWatcher_SCAN As FileSystemWatcher
Public Event FileCreated As EventHandler(Of FileSystemEventArgs)
Public Sub New(pLogConfig As LogConfig)
MyBase.New(pLogConfig)
End Sub
Private Sub OnCreated(source As Object, e As IO.FileSystemEventArgs)
RaiseEvent FileCreated(source, e)
End Sub
Public Sub Restart_FolderWatch()
Try
If FolderWatcher.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher.EnableRaisingEvents = False
FW_started = False
'FolderWatch neu instanzieren
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
Logger.Info(" >> FolderWatch neu instanziert")
FolderWatcher.IncludeSubdirectories = False
FolderWatcher.EnableRaisingEvents = True
AddHandler FolderWatcher.Created, AddressOf OnCreated
FW_started = True
CONFIG.Config.FolderWatchStarted = True
CONFIG.Save()
End If
Catch ex As Exception
Logger.Info($"Error in Restart_FolderWatch: {ex.Message}")
Logger.Error(ex)
End Try
End Sub
Public Sub Restart_FolderWatchSCAN()
Try
If FolderWatcher_SCAN.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
'FolderWatch neu instanzieren
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
Logger.Info(" >> FolderWatchScan neu instanziert")
FolderWatcher_SCAN.IncludeSubdirectories = False
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
CONFIG.Config.FolderWatchScanStarted = True
CONFIG.Save()
End If
Catch ex As Exception
Logger.Info($"Error in Restart_FolderWatchSCAN: {ex.Message}")
Logger.Error(ex)
End Try
End Sub
Public Function StartStop_FolderWatch() As Integer
Try
If CURRENT_FOLDERWATCH = "" Then
'MsgBox("Bitte definieren Sie einen Überwachungsordner:", MsgBoxStyle.Exclamation)
Return False
End If
If FolderWatcher Is Nothing Then
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
Logger.Info(" >> FolderWatch Gestartet")
FolderWatcher.IncludeSubdirectories = False
FolderWatcher.EnableRaisingEvents = True
AddHandler FolderWatcher.Created, AddressOf OnCreated
FW_started = True
CONFIG.Config.FolderWatchStarted = True
CONFIG.Save()
Return 1
End If
If FolderWatcher.EnableRaisingEvents = False Then
' Dim watcher As New FileSystemWatcher()
' watcher.Path = CURRENT_FOLDERWATCH
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
Logger.Info(" >> FolderWatch Gestartet")
FolderWatcher.IncludeSubdirectories = False
FolderWatcher.EnableRaisingEvents = True
AddHandler FolderWatcher.Created, AddressOf OnCreated
FW_started = True
CONFIG.Config.FolderWatchStarted = True
CONFIG.Save()
Return 1
Else
'Gestartet also Stoppen
FolderWatcher.EnableRaisingEvents = False
FW_started = False
Logger.Info(" >> FolderWatch gestoppt")
CONFIG.Config.FolderWatchStarted = False
CONFIG.Save()
Return 0
End If
Catch ex As Exception
MsgBox("Error in StartStop_FolderWatch:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return 99
End Try
End Function
Public Function StartStop_FolderWatchSCAN() As Integer
Try
If CURRENT_SCAN_FOLDERWATCH = "" Then
If FolderWatcher.EnableRaisingEvents = True Then
Stop_FWSCAN()
Return 0
Else
If USER_LANGUAGE = "de-DE" Then
MsgBox("Bitte definieren Sie einen Überwachungsordner für Scan-Eingänge:", MsgBoxStyle.Exclamation)
Else
MsgBox("Please define a watchfolder for Scanning:", MsgBoxStyle.Exclamation)
End If
Return False
End If
End If
If FolderWatcher_SCAN Is Nothing Then
FolderWatcher_SCAN = New FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
Logger.Info(" >> FolderWatch Scan Gestartet")
FolderWatcher_SCAN.IncludeSubdirectories = False
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
CONFIG.Config.FolderWatchScanStarted = True
CONFIG.Save()
Return 1
End If
If FolderWatcher_SCAN.EnableRaisingEvents = False Then
' Dim watcher As New FileSystemWatcher()
' watcher.Path = CURRENT_FOLDERWATCH
FolderWatcher_SCAN = New FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
Logger.Info(" >> FolderWatch Scan Gestartet")
FolderWatcher_SCAN.IncludeSubdirectories = False
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
CONFIG.Config.FolderWatchScanStarted = True
CONFIG.Save()
Return 1
Else
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
Logger.Info(" >> FolderWatch Scan gestoppt")
CONFIG.Config.FolderWatchScanStarted = False
CONFIG.Save()
Return 0
End If
Catch ex As Exception
MsgBox("Error in StartStop_FolderWatchSCAN:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return 99
End Try
End Function
Public Function Stop_FWSCAN() As Boolean
If FolderWatcher.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher.EnableRaisingEvents = False
FW_started = False
Logger.Info(" >> FolderWatch gestoppt")
'SaveConfigValue("FW_started", "False")
CONFIG.Config.FolderWatchStarted = True
CONFIG.Save()
Return True
Else
Return False
End If
End Function
'Private Sub OnCreated(source As Object, e As FileSystemEventArgs)
' Try
' For Each row As DataRow In DTEXCLUDE_FILES.Rows
' Dim content As String = row.Item(0).ToString.ToLower
' If e.FullPath.ToLower.Contains(content) Then
' Exit Sub
' End If
' Next
' Dim oHandleType As String
' If e.FullPath.ToLower.EndsWith(".msg") Then
' oHandleType = "|FW_OUTLOOK_MESSAGE|"
' Else
' oHandleType = "|FW_SIMPLEINDEXER|"
' End If
' 'Die Datei übergeben
' Logger.Info(">> OnCreated-File:" & e.FullPath)
' If ClassIndexFunctions.CheckDuplicateFiles(e.FullPath, "FolderWatch/Scan") Then
' FileHandler.Decide_FileHandle(e.FullPath, oHandleType)
' End If
' Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in folder_watch_Created")
' End Try
'End Sub
End Class