FileFlow/Global_Indexer/frmStart.vb
SchreiberM 80247e18dd MS2909
2015-09-29 12:16:23 +02:00

538 lines
28 KiB
VB.net

Imports System.IO
Imports Microsoft.Office.Interop
Imports Independentsoft
Imports DLLLicenseManager
Imports System.Text
Public Class frmStart
Dim sql_User_Login As String = "UPDATE TBDD_USER SET LOGGED_IN = @LogInOut, LOGGED_WHERE = '@ANGEMELDETWO' WHERE (LOWER(USERNAME) = LOWER('@user'))"
Dim sql_UserID As String = "SELECT GUID FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('@user'))"
Private USER_GUID
Private ISUserAdmin As Boolean = False
Public _lizenzManager As ClassLicenseManager
Dim loaded As Boolean = False
Dim WithEvents HotKey As New clsHotkey(Me)
Private Sub frmMain_DragDrop(sender As Object, e As DragEventArgs) Handles MyBase.DragDrop
ClassDragDrop.Drop_File(e)
Check_Dropped_Files()
End Sub
Private Sub ReceiveHotKey(ByVal HotKeyID As String) Handles HotKey.HotKeyPressed
Me.Cursor = Cursors.WaitCursor
Me.NotifyIcon1.Visible = True
NotifyIcon1.ShowBalloonTip(2000, "Hotkey", "Hotkey wird ausgeführt!", ToolTipIcon.Info)
Try
'Die vorherige Tempfile löschen
If CURRENT_WD_TEMPSEARCH <> "" Then
If My.Computer.FileSystem.FileExists(CURRENT_WD_TEMPSEARCH) Then
Try
My.Computer.FileSystem.DeleteFile(CURRENT_WD_TEMPSEARCH)
Catch ex As Exception
End Try
End If
End If
Dim HK1 As String
Dim HK2 As String
'Die Hotkeys definieren
Dim SQL As String = "SELECT * FROM TBHOTKEYTEMP_USER_HOTKEYS WHERE HOTKEY_ID = " & HotKeyID
Dim DTHOTKEYSTEMP As DataTable = ClassDatabase.Return_Datatable(SQL, True)
If Not IsNothing(DTHOTKEYSTEMP) Then
HK1 = DTHOTKEYSTEMP.Rows(0).Item("HOTKEY1")
HK2 = DTHOTKEYSTEMP.Rows(0).Item("HOTKEY2")
'Alle Profile raussuchen die die Tastaturkombination enthalten
SQL = "select * from TBHOTKEY_USER_PROFILE where UPPER(HOTKEY1) = UPPER('" & HK1 & "') AND UPPER(HOTKEY2) = UPPER('" & HK2 & "') AND USER_ID = " & CURRENT_USERID
Dim DTHOTKEY_PROFILES As DataTable = ClassDatabase.Return_Datatable(SQL, True)
Dim Result As String = ""
If Not IsNothing(DTHOTKEY_PROFILES) Then
For Each row As DataRow In DTHOTKEY_PROFILES.Rows
Result = ClassHotkey_Windream.RUN_WD_SEARCH(row.Item("GUID"))
Next
End If
If Result = "" Then
Me.NotifyIcon1.Visible = False
Else
NotifyIcon1.ShowBalloonTip(5000, "Hotkey-Fehler:", Result.ToString, ToolTipIcon.Warning)
End If
End If
Catch ex As Exception
MsgBox("Error in ReceiveHotKey: " & ex.Message, MsgBoxStyle.Critical)
End Try
Me.Cursor = Cursors.Default
End Sub
Private Sub frmMain_DragEnter(sender As Object, e As DragEventArgs) Handles Me.DragEnter
Drag_Enter(sender, e)
End Sub
Sub Drag_Enter(sender As Object, e As DragEventArgs)
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
Console.WriteLine("DragEnter ...DragDrop")
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then
'handle a message dragged from Outlook
e.Effect = DragDropEffects.Copy
Console.WriteLine("DragEnter ...OutlookMessage")
ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then
e.Effect = DragDropEffects.Copy
Console.WriteLine("DragEnter ...Attachment from Outlook")
Else
'otherwise, do not handle
e.Effect = DragDropEffects.None
End If
End Sub
Sub Check_Dropped_Files()
'Try
Me.TopMost = False
ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE WORKED = 1 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')")
CURRENT_ABBRUCH = 0
Dim i As Integer
For Each Str As Object In ClassDragDrop.files_dropped
If Not Str Is Nothing Then
If LogErrorsOnly = False Then ClassLogger.Add(">> Check Drop-File: " & Str.ToString, False)
Dim handleType As String = Str.Substring(0, Str.LastIndexOf("@") + 1)
Dim filename As String = Str.Substring(Str.LastIndexOf("@") + 1)
If ClassIndexFunctions.FileExistsinDropTable(filename) = False Then
ClassFilehandle.Decide_FileHandle(filename, handleType)
i += 1
Else
Console.WriteLine("File gibt es bereits")
End If
End If
Next
Me.TopMost = True
Dim sql As String = "SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')"
DTACTUAL_FILES = Nothing
DTACTUAL_FILES = ClassDatabase.Return_Datatable(sql, True)
ABORT_INDEXING = False
If DTACTUAL_FILES.Rows.Count > 1 Then
frmIndexFileList.ShowDialog()
DTACTUAL_FILES = Nothing
DTACTUAL_FILES = ClassDatabase.Return_Datatable(sql, True)
End If
For Each Filerow As DataRow In DTACTUAL_FILES.Rows
Dim filestring As String = Filerow.Item("FILENAME2WORK")
CURRENT_FILENAME = Filerow.Item("FILENAME2WORK")
CURRENT_WORKFILE_GUID = Filerow.Item(0)
CURRENT_WORKFILE = Filerow.Item("FILENAME2WORK")
If LogErrorsOnly = False Then ClassLogger.Add(">> CURRENT_WORKFILE: " & CURRENT_WORKFILE, False)
If File.Exists(CURRENT_WORKFILE) Then
Open_IndexDialog()
Else
Console.WriteLine("File existiert nicht mehr!")
End If
Next
End Sub
Sub Open_IndexDialog()
Try
Me.Hide()
frmIndex.ShowDialog()
Me.Visible = True
Me.TopMost = True
Me.BringToFront()
If File.Exists(CURRENT_FILENAME) Then
Select Case CURRENT_ABBRUCH
Case 1
MsgBox("Bitte indexieren Sie die Datei vollständig!" & vbNewLine & "(Abbruch 1 des Indexierungsvorgangs)", MsgBoxStyle.Information)
Open_IndexDialog()
Case 2
Dim result As MsgBoxResult
result = MessageBox.Show("Sie brechen nun zum zweiten Mal den Indexierungsvorgang ab!" & vbNewLine & "Wollen Sie die Indexierung aller Dateien abbrechen?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.Yes Then
Dim containsfw_file As Boolean = False
Try
ABORT_INDEXING = True
For Each Filerow As DataRow In DTACTUAL_FILES.Rows
Dim filestring As String = Filerow.Item("FILENAME2WORK")
Dim handletype As String = Filerow.Item("HANDLE_TYPE")
If handletype = "@MSGONLY@" Or handletype = "@ATTMNTEXTRACTED@" Then
System.IO.File.Delete(filestring)
ElseIf handletype.StartsWith("@FW") Then
containsfw_file = True
End If
Next
'Zuerst die Daten des Ablaufs löschen
ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')", True)
If containsfw_file = True Then
MsgBox("Der Indexierungsprozess beinhaltete (auch) Dateien per Folderwatch!" & vbNewLine & "Diese Dateien wurden nicht gelöscht und verbleiben im Folderwatch-Verzeichnis!" & vbNewLine & "Bitte verschieben Sie die Dateien ggfls.", MsgBoxStyle.Information, "Achtung - Hinweis:")
End If
Catch ex As Exception
MsgBox("Fehler bei Abbruch der Indexierung: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
CURRENT_ABBRUCH = 0
Exit Sub
Else
CURRENT_ABBRUCH = 0
End If
End Select
End If
Catch ex As Exception
MsgBox("Fehler bei Aufruf Indexdialog: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Me.Visible = True
End Try
End Sub
Private Sub frmStart_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Try
ClassLogger.Add("", False)
If START_INCOMPLETE = False Then
Dim sql = sql_User_Login
sql = sql.Replace("@LogInOut", 0)
sql = sql.Replace("@ANGEMELDETWO", "''")
sql = sql.Replace("@user", Environment.UserName)
ClassDatabase.Execute_non_Query(sql)
If Not USER_GUID Is Nothing Then
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE = 'Global-Indexer'"
ClassDatabase.Execute_non_Query(sql)
End If
End If
ClassWindowLocation.SaveFormLocationSize(Me)
Catch ex As Exception
End Try
If Not USER_GUID Is Nothing Then
Unregister_Hotkeys()
End If
End Sub
Sub Refresh_Licence()
Try
Me._lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "")
Dim sql As String = "SELECT LICENSEKEY FROM TBGI_CONFIGURATION WHERE GUID = 1"
Dim lic As String = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
Dim licString = Me._lizenzManager.DecodeLicenseKey(lic)
Dim split() = licString.ToString.Split("#")
If lic <> "" Then
License_Anzahl = split(0)
Else
License_Anzahl = 0
End If
If CDate(split(1)) < CDate(Now.ToShortDateString) Then
MsgBox("Ihre Lizenz ist abgelaufen!" & vbNewLine & "Letztes Gültigkeitsdatum: " & split(1) & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung", MsgBoxStyle.Exclamation)
License_Expired = True
License_Anzahl = 0
End If
'tslblLicenses.Text = "Anzahl Lizenzen: " & licenseanzahl
LicenseProfiles = split(2)
Try
LicenseHotKey = split(3)
Catch ex As Exception
LicenseHotKey = 0
End Try
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler bei Licensemanager:")
End Try
End Sub
Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles Me.Load
'Me.TransparencyKey = Color.Transparent
' Me.BackColor = Color.Transparent
Try
Me.Opacity = 30
ClassWindowLocation.LoadFormLocationSize(Me)
Dim sql = sql_UserID
sql = sql.Replace("@user", Environment.UserName)
ClassLogger.Init("", "log_" & Environment.UserName)
ClassLogger.Add(">> Programmstart: " & Now, False)
ClassLogger.Add(">> Username: " & Environment.UserName, False)
LoadMyConfig()
If LoadFileExclusion() = False Then
MsgBox("Dies Ausschlusskriterien für Dateien in Folderwatch konnten nicht angelegt werden!", MsgBoxStyle.Information)
End If
If MyConnectionString = String.Empty Then
frmConfig_Basic.ShowDialog()
End If
If ClassDatabase.Init() = False Then
ERROR_STATE = "FAILED CONNECTION"
MsgBox("Es konnte keine Datenbankverbindung aufgebaut werden!" & vbNewLine & "Bitte prüfen Sie die Konfiguration der Datenbankverbindung und ggfls. den Datenbankserver", MsgBoxStyle.Critical)
frmConfig_Basic.ShowDialog()
End If
If ClassDatabase.Init() = False Then
ClassLogger.Add(" >> Global Indexer wird geschlossen!", False)
START_INCOMPLETE = True
Exit Sub
End If
If MyConnectionString = String.Empty Then
ClassLogger.Add(" >> Kein Connection-String definiert - Global Indexer wird geschlossen!", False)
START_INCOMPLETE = True
Exit Sub
End If
USER_GUID = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
If USER_GUID Is Nothing Then
ClassLogger.Add(" - ACHTUNG: User '" & Environment.UserName & "' nicht in der Userverwaltung hinterlegt!", False)
MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
ClassLogger.Add(" >> Global Indexer wird geschlossen!", False)
START_INCOMPLETE = True
Exit Sub
Else
Refresh_Licence()
CURRENT_USERID = USER_GUID
If UniversalViewer = String.Empty And My.Settings.DoNot_Show_Documents = False Then
ERROR_STATE = "NO UV"
frmConfig_Basic.ShowDialog()
End If
'Die FolderWatch starten
Dim folderwatch = ClassDatabase.Execute_Scalar("SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'DEFAULT' AND USER_ID = " & CURRENT_USERID, MyConnectionString)
Dim folderwatch_SCAN = ClassDatabase.Execute_Scalar("SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & CURRENT_USERID, MyConnectionString)
If Not folderwatch Is Nothing Then
CURRENT_FOLDERWATCH = folderwatch
If FW_started = True Then
tslblFW.Visible = True
ClassFolderWatcher.StartStop_FolderWatch()
End If
End If
If Not folderwatch_SCAN Is Nothing Then
CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN
If FWSCAN_started = True Then
tslblFW.Visible = True
ClassFolderWatcher.StartStop_FolderWatchSCAN()
End If
End If
If CURRENT_FOLDERWATCH <> "" Or CURRENT_SCAN_FOLDERWATCH <> "" Then
TimerFolderWatch.Start()
End If
sql = "SELECT MODULE_GI FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('@user'))"
sql = sql.Replace("@user", Environment.UserName)
If ClassDatabase.Execute_Scalar(sql, MyConnectionString, True) = False Then
ClassLogger.Add(" - User: " & Environment.UserName & " nicht für Modul freigegben!", False)
MsgBox("Achtung: Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
START_INCOMPLETE = True
Exit Sub
Else
'Am System anmelden
sql = sql_User_Login
sql = sql.Replace("@LogInOut", 1)
sql = sql.Replace("@ANGEMELDETWO", Environment.MachineName)
sql = sql.Replace("@user", Environment.UserName)
If ClassDatabase.Execute_non_Query(sql, True) = False Then
START_INCOMPLETE = True
Exit Sub
End If
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Global-Indexer'"
If ClassDatabase.Execute_non_Query(sql, True) = True Then
End If
sql = "INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,MODULE) VALUES (" & USER_GUID & ",'Global-Indexer')"
ClassDatabase.Execute_non_Query(sql, True)
sql = "SELECT GI_ADMIN FROM TBDD_USER WHERE GUID = " & USER_GUID
ISUserAdmin = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
If ISUserAdmin = True Then
ToolStripSeparator1.Visible = True
AdministrationToolStripMenuItem.Visible = True
Else
ToolStripSeparator1.Visible = False
AdministrationToolStripMenuItem.Visible = False
End If
'Lizenz abgellaufen, überprüfen ob User Admin ist
If License_Expired And ISUserAdmin = False Then
' wenn ja dann schliessen
START_INCOMPLETE = True
Exit Sub
Else
'ansonsten timer starten
TimerClose3Minutes.Start()
End If
'Anzahl der eingeloggten User
UserLoggedin = ClassDatabase.Execute_Scalar("select count(*) from TBDD_USER_MODULE_LOG_IN where MODULE = 'Global-Indexer'", MyConnectionString, True)
If License_Anzahl < UserLoggedin Then
MsgBox("Die Anzahl der aktuell angemeldeten User (" & UserLoggedin.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & License_Anzahl.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
ClassLogger.Add(" >> Die Anzahl der aktuell angemeldeten User (" & UserLoggedin.ToString & ") überschreitet die Anzahl der Lizenzen (" & License_Anzahl & ") für Process-Manager!", False)
If ISUserAdmin = False Then
'Anmeldung wieder herausnehmen
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Global-Indexer'"
ClassDatabase.Execute_non_Query(sql, True)
ClassLogger.Add(" - Wieder abgemeldet", False)
START_INCOMPLETE = True
Exit Sub
Else
'ansonsten timer starten
If TimerClose3Minutes.Enabled = False Then
TimerClose3Minutes.Start()
End If
End If
End If
sql = "SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE MODULE = 'Global-Indexer'"
Dim anzahl = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')", True)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Anzahl Angemeldete User: " & anzahl.ToString, False)
If Load_BasicConfig() = False Then
START_INCOMPLETE = True
Exit Sub
End If
Unregister_Hotkeys()
Load_Hotkeys()
End If
End If
Catch ex As Exception
MsgBox("Unexpected Error in Load-Form" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub Unregister_Hotkeys()
Try
Dim sql As String = "Select * from TBHOTKEYTEMP_USER_HOTKEYS where [USER_ID] = " & CURRENT_USERID
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True)
If Not IsNothing(DT) Then
For Each row As DataRow In DT.Rows
HotKey.RemoveHotKey(row.Item("HOTKEY_ID"))
Next
sql = "delete from TBHOTKEYTEMP_USER_HOTKEYS where [USER_ID] = " & CURRENT_USERID
ClassDatabase.Execute_non_Query(sql, True)
End If
Catch ex As Exception
MsgBox("Error in Unregister_Hotkeys:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub Load_Hotkeys()
Try
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT HOTKEY1, HOTKEY2, ABS(CONVERT(INT, CONVERT(binary(4), NEWID()))) AS HOTKEY_ID FROM TBHOTKEY_USER_PROFILE WHERE USER_ID = " & CURRENT_USERID & " GROUP BY HOTKEY1, HOTKEY2", True)
If DT.Rows.Count > 0 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> " & DT.Rows.Count & " Hotkey-Profile", False)
Dim i As Integer = 0
For Each row As DataRow In DT.Rows
i += 1
Dim sql As String = "INSERT INTO TBHOTKEYTEMP_USER_HOTKEYS (HOTKEY_ID,HOTKEY1,HOTKEY2,[USER_ID]) VALUES (" & row.Item("HOTKEY_ID") & ", '" & row.Item("HOTKEY1") & "', '" & row.Item("HOTKEY2") & "', " & CURRENT_USERID & ")"
ClassDatabase.Execute_non_Query(sql, True)
Dim keyCode As Keys
Try
Dim kc As New KeysConverter
Dim obj As Object = kc.ConvertFromString(row.Item("HOTKEY2").ToString.ToUpper)
keyCode = CType(obj, Keys)
Catch ex As Exception
MsgBox("Error in Convert Key:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Exit Sub
End Try
Select Case row.Item("HOTKEY1")
Case "Strg"
If LogErrorsOnly = False Then ClassLogger.Add(" >>" & i.ToString + "|Strg " & row.Item("HOTKEY2").ToString.ToUpper, False)
HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_CONTROL, row.Item("HOTKEY_ID"))
Case "Shift"
If LogErrorsOnly = False Then ClassLogger.Add(" >>" & i.ToString + "|Shift " & row.Item("HOTKEY2").ToString.ToUpper, False)
HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_SHIFT, row.Item("HOTKEY_ID"))
Case "Alt"
If LogErrorsOnly = False Then ClassLogger.Add(" >>" & i.ToString + "|Alt " & row.Item("HOTKEY2").ToString.ToUpper, False)
HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_ALT, row.Item("HOTKEY_ID"))
Case "win"
If LogErrorsOnly = False Then ClassLogger.Add(" >>" & i.ToString + "|Win " & row.Item("HOTKEY2").ToString.ToUpper, False)
HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_WIN, row.Item("HOTKEY_ID"))
End Select
Next
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> Keine Hotkeys!", False)
End If
Catch ex As Exception
MsgBox("Error in Load_Hotkeys:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub HotkeyEisntellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HotkeyEisntellungenToolStripMenuItem.Click
Me.Hide()
Unregister_Hotkeys()
frmHotKey_Add.ShowDialog()
Load_Hotkeys()
Me.Visible = True
End Sub
Private Sub GlobalIndexerEinstellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GlobalIndexerEinstellungenToolStripMenuItem.Click
Me.Hide()
frmAdministration.ShowDialog()
Me.Visible = True
End Sub
Private Sub GrundeinstellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GrundeinstellungenToolStripMenuItem.Click
Me.TopMost = False
frmConfig_Basic.ShowDialog()
Me.TopMost = True
End Sub
Private Sub FrmHotkeyAddToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FrmHotkeyAddToolStripMenuItem.Click
Me.TopMost = False
Unregister_Hotkeys()
frmHotkey_User.ShowDialog()
Load_Hotkeys()
Me.TopMost = True
End Sub
Private Sub TimerFolderWatch_Tick(sender As Object, e As EventArgs) Handles TimerFolderWatch.Tick
Try
If FW_started = True Then
'Prüfen ob alle Files abgearbeitet wurden
Dim sql = "SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND HANDLE_TYPE like '%@FW%' AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')"
DTACTUAL_FILES = ClassDatabase.Return_Datatable(sql, True)
If DTACTUAL_FILES.Rows.Count > 0 Then
ABORT_INDEXING = False
' Dim fil As String
Me.TimerFolderWatch.Stop()
For Each row As DataRow In DTACTUAL_FILES.Rows
If ABORT_INDEXING = True Then
Exit For
End If
Dim FileForWork As String = row.Item(1)
If LogErrorsOnly = False Then ClassLogger.Add(">> In Timer Folderwatch - File: " & FileForWork, False)
Dim fileInUse As Boolean = ClassFilehandle.IsFileInUse(FileForWork)
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_GUID = row.Item("GUID")
Open_IndexDialog()
Else
ClassLogger.Add(">> Datei existiert (noch) nicht - fileexists?!", False)
End If
Else
ClassLogger.Add(">> Datei '" & row.Item(1) & "' kann nicht exclusiv geöffnet werden - fileInUse!", False)
End If
Next
Me.TimerFolderWatch.Start()
End If
tslblFW.Visible = True
Else
tslblFW.Visible = False
End If
Catch ex As Exception
MsgBox("Error in Work FolderWatch-File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub TimerClose3Minutes_Tick(sender As Object, e As EventArgs) Handles TimerClose3Minutes.Tick
If License_Expired = True Or License_Anzahl < UserLoggedin Then
MsgBox("Global Indexer wird nun geschlossen, weil keine neue Lizenzdaten eingegeben wurden!", MsgBoxStyle.Information)
Me.Close()
End If
End Sub
Private Sub frmStart_Shown(sender As Object, e As EventArgs) Handles Me.Shown
If START_INCOMPLETE = True Then
Me.Close()
End If
loaded = True
Opacity = 0.65
TimerFolderWatch.Start()
End Sub
Private Sub HistoryIndexierteDateienToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HistoryIndexierteDateienToolStripMenuItem.Click
frmHistory.ShowDialog()
End Sub
Private Sub InfoToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InfoToolStripMenuItem.Click
AboutBox1.ShowDialog()
End Sub
End Class