This commit is contained in:
SchreiberM
2015-09-29 12:16:23 +02:00
parent 379a63d9a8
commit 80247e18dd
31 changed files with 1808 additions and 524 deletions

View File

@@ -105,7 +105,7 @@ Public Class frmStart
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
@@ -142,20 +142,29 @@ Public Class frmStart
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
'Zuerst die Daten des Ablaufs löschen
ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')", True)
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
@@ -237,11 +246,15 @@ Public Class frmStart
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
@@ -250,16 +263,11 @@ Public Class frmStart
START_INCOMPLETE = True
Exit Sub
End If
If UniversalViewer = String.Empty And My.Settings.DoNot_Show_Documents = False Then
frmConfig_Basic.ShowDialog()
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
Refresh_Licence()
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)
@@ -268,18 +276,34 @@ Public Class frmStart
START_INCOMPLETE = True
Exit Sub
Else
Refresh_Licence()
CURRENT_USERID = USER_GUID
Dim folderwatch = ClassDatabase.Execute_Scalar("SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE USER_ID = " & CURRENT_USERID, MyConnectionString)
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
If CURRENT_FOLDERWATCH <> "" Then
TimerFolderWatch.Start()
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
@@ -298,7 +322,11 @@ Public Class frmStart
Exit Sub
End If
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Global-Indexer'"
ClassDatabase.Execute_non_Query(sql, True)
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)
@@ -322,11 +350,15 @@ Public Class frmStart
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)
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 für Process-Manager!", False)
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
@@ -339,7 +371,7 @@ Public Class frmStart
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 LogErrorsOnly = False Then ClassLogger.Add(" >> Anzahl Angemeldete User: " & anzahl.ToString, False)
If Load_BasicConfig() = False Then
START_INCOMPLETE = True
Exit Sub
@@ -372,7 +404,7 @@ Public Class frmStart
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 & " Hotkeys", False)
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
@@ -391,21 +423,21 @@ Public Class frmStart
Select Case row.Item("HOTKEY1")
Case "Strg"
If LogErrorsOnly = False Then ClassLogger.Add(" ..." & i.ToString + "|Strg " & row.Item("HOTKEY2").ToString.ToUpper, False)
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)
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)
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)
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)
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)
@@ -444,20 +476,32 @@ Public Class frmStart
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 & "')"
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True)
If DT.Rows.Count > 0 Then
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 DT.Rows
If ClassFilehandle.IsFileInUse(row.Item(1)) = True Then
CURRENT_WORKFILE = row.Item(1)
CURRENT_FILENAME = row.Item(1)
CURRENT_WORKFILE_GUID = row.Item("GUID")
Open_IndexDialog()
Else
ClassLogger.Add(">> Datei '" & row.Item(1) & "' kann nicht exclusiv geöffnet werden!", False)
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