This commit is contained in:
SchreiberM
2015-07-24 10:45:41 +02:00
parent 8097628f66
commit d23e44524b
21 changed files with 5448 additions and 3380 deletions

View File

@@ -1005,7 +1005,7 @@ Public Class frmIndex
End If
Next
End If
If DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_OUTLOOK_MESSAGE@" Then
If DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Or DropType = "@MSGONLY@" Then
indexierung_erfolgreich = SetEmailIndices()
If indexierung_erfolgreich = False Then
MsgBox("Error in SetEmailIndices - See log", MsgBoxStyle.Critical)
@@ -1056,12 +1056,25 @@ Public Class frmIndex
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBGI_OBJECTTYPE_EMAIL_INDEX WHERE OBJECTTYPE = '" & ClassWindream._WDObjekttyp & "'")
If DT.Rows.Count = 1 Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_ID").ToString, msg.InternetMessageId)
'Die aktuelle Message-ID zwischenspeichern
CURRENT_MESSAGEID = msg.InternetMessageId
If indexierung_erfolgreich = False Then
MsgBox("Error in SetEmailIndices-EmailID - See log", MsgBoxStyle.Critical)
Return False
'Message-ID nur auswerten wenn vorher nicht gestzt wurde!
If CURRENT_MESSAGEID = "" Then
If Not msg.InternetMessageId Is Nothing Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_ID").ToString, msg.InternetMessageId)
'Die aktuelle Message-ID zwischenspeichern
CURRENT_MESSAGEID = msg.InternetMessageId
If indexierung_erfolgreich = False Then
MsgBox("Error in SetEmailIndices-EmailID - See log", MsgBoxStyle.Critical)
Return False
End If
Else
ClassLogger.Add("Eine Message-ID konnte nicht ausgelesen werden!", True)
End If
Else
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_ID").ToString, CURRENT_MESSAGEID)
If indexierung_erfolgreich = False Then
MsgBox("Error in SetEmailIndices-EmailID - See log", MsgBoxStyle.Critical)
Return False
End If
End If
' Regular Expressions vorbereiten
@@ -1079,10 +1092,18 @@ Public Class frmIndex
' Email Header auslesen
Dim headers As String = ClassEmailHeaderExtractor.getMessageHeaders(msg)
Dim emailFrom As String
Dim emailTo As String
' Email Absender und Empfänger
Dim emailFrom As String = ClassEmailHeaderExtractor.extractFromAddress(headers, FromRegexList)
Dim emailTo As String = ClassEmailHeaderExtractor.extractToAddress(headers, ToRegexList)
If headers Is Nothing Then
emailFrom = msg.DisplayTo.Replace("'", "")
emailTo = msg.InternetAccountName.Replace("'", "")
Else
emailFrom = ClassEmailHeaderExtractor.extractFromAddress(headers, FromRegexList)
emailTo = ClassEmailHeaderExtractor.extractToAddress(headers, ToRegexList)
End If
If LogErrorsOnly = False Then ClassLogger.Add(" ...emailFrom: " & emailFrom, False)
If LogErrorsOnly = False Then ClassLogger.Add(" ...emailTo: " & emailTo, False)
'FROM
@@ -1102,9 +1123,9 @@ Public Class frmIndex
End If
End If
Dim subj As String = ClassFormFunctions.CleanInput(msg.Subject)
If LogErrorsOnly = False Then ClassLogger.Add(" ...subj: " & subj, False)
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_SUBJECT").ToString, subj)
' Dim subj As String = ClassFormFunctions.CleanInput(msg.Subject)
If LogErrorsOnly = False Then ClassLogger.Add(" ...subj: " & msg.Subject, False)
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_SUBJECT").ToString, msg.Subject)
If indexierung_erfolgreich = False Then
MsgBox("Error in SetEmailIndices-Subject - See log", MsgBoxStyle.Critical)
Return False
@@ -1135,11 +1156,13 @@ Public Class frmIndex
Try
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBGI_OBJECTTYPE_EMAIL_INDEX WHERE OBJECTTYPE = '" & ClassWindream._WDObjekttyp & "'")
If DT.Rows.Count = 1 Then
If CURRENT_MESSAGEID <> "" Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_ID").ToString, CURRENT_MESSAGEID)
If indexierung_erfolgreich = False Then
MsgBox("Error in SetAttachmentIndices - See log", MsgBoxStyle.Critical)
Return False
If Not CURRENT_MESSAGEID Is Nothing Then
If CURRENT_MESSAGEID <> "" Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_ID").ToString, CURRENT_MESSAGEID)
If indexierung_erfolgreich = False Then
MsgBox("Error in SetAttachmentIndices - See log", MsgBoxStyle.Critical)
Return False
End If
End If
End If
'indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_FROM").ToString, msg.SenderEmailAddress)
@@ -1211,7 +1234,26 @@ Public Class frmIndex
Dim Insert_String As String
Try
Insert_String = sql_history_INSERT_INTO & ",ADDED_WHO,ADDED_WHERE) VALUES ('" & CURRENT_WORKFILE & "','" & CURRENT_NEWFILENAME & "'" & sql_history_Index_Values & ",'" & Environment.UserDomainName & "\" & Environment.UserName & "','" & Environment.MachineName & "')"
ClassDatabase.Execute_Scalar(Insert_String, MyConnectionString)
If ClassDatabase.Execute_Scalar(Insert_String, MyConnectionString) = True Then
If CURRENT_MESSAGEID <> "" Then
Dim max As String = "SELECT MAX(GUID) FROM TBGI_HISTORY"
Dim GUID = ClassDatabase.Execute_Scalar(max, MyConnectionString, True)
Try
If GUID > 0 Then
Dim sql As String
If CURRENT_ISATTACHMENT = True Then
sql = "Update TBGI_HISTORY SET ATTACHMENT = 1, MSG_ID = '" & CURRENT_MESSAGEID & "' WHERE GUID = " & GUID
ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
Else
sql = "Update TBGI_HISTORY SET ATTACHMENT = 0, MSG_ID = '" & CURRENT_MESSAGEID & "' WHERE GUID = " & GUID
ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
End If
End If
Catch ex As Exception
End Try
End If
End If
Return False
Catch ex As Exception
ClassLogger.Add(" - Fehler bei Move_Rename - Fehler: " & vbNewLine & ex.Message)
@@ -1262,31 +1304,27 @@ Public Class frmIndex
End Sub
Private Sub frmIndex_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Try
CURRENT_ISATTACHMENT = False
DropType = ClassDatabase.Execute_Scalar("SELECT HANDLE_TYPE FROM TBGI_FILES_USER WHERE GUID = " & CURRENT_WORKFILE_GUID, MyConnectionString, True)
chkdelete_origin.Visible = False
If DropType = "@DROPFROMFSYSTEM@" Then
chkdelete_origin.Visible = True
chkdelete_origin.Checked = Delete_OriginFile
Me.Text = "Indexierung der gedroppten Datei:"
ElseIf DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_OUTLOOK_MESSAGE@" Then
ElseIf DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Then
Select Case DropType
Case "@FW_OUTLOOK_MESSAGE@"""
Case "@FW_MSGONLY@"
If LogErrorsOnly = False Then ClassLogger.Add(" ....msg-file from folderwatch", False)
Me.Text = "Indexierung der msg-Datei (ohne Anhang) - aus Folderwatch:"
Case "@OUTLOOK_MESSAGE@"
If LogErrorsOnly = False Then ClassLogger.Add(" ....msg-file through dragdrop", False)
Me.Text = "Indexierung der msg-Datei (ohne Anhang):"
End Select
Dim tempfile As String = Path.Combine(Path.GetTempPath, Path.GetFileNameWithoutExtension(CURRENT_WORKFILE) & "_excl_att.msg")
Dim savestring = tempfile 'Path.GetDirectoryName(CURRENT_WORKFILE) & "\" & Path.GetFileNameWithoutExtension(CURRENT_WORKFILE) & "_excl_att.msg"
If File.Exists(savestring) Then
File.Delete(savestring)
End If
Dim _msg As New Msg.Message(CURRENT_WORKFILE)
_msg.Attachments.Clear()
_msg.Save(savestring)
CURRENT_WORKFILE = savestring
ElseIf DropType = "@MSGONLY@" Then
Me.Text = "Indexierung der msg-Datei (ohne Anhang):"
ElseIf DropType = "@ATTMNTEXTRACTED@" Then
CURRENT_ISATTACHMENT = True
Me.Text = "Indexierung eines Email-Attachments:"
ElseIf DropType = "@FW_SIMPLEINDEXER@" Then
Me.Text = "Indexierung einer Folderwatch-Datei:"
@@ -1303,6 +1341,7 @@ Public Class frmIndex
MULTIFILES = ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBGI_FILES_USER WHERE WORKED = 0 AND GUID <> " & CURRENT_WORKFILE_GUID & " AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')", MyConnectionString, True)
If MULTIFILES > 0 Then
chkMultiIndexer.Text = "Multi-Indexing - Alle nachfolgenden Dateien (" & MULTIFILES & ") identisch indexieren"
chkMultiIndexer.Checked = False
chkMultiIndexer.Visible = True
Else
chkMultiIndexer.Visible = False
@@ -1377,7 +1416,7 @@ Public Class frmIndex
' <STAThread()> _
Private Sub Refresh_IndexeMan(dokartid As Integer)
Try
DT_INDEXEMAN = ClassDatabase.Return_Datatable("select T1.BEZEICHNUNG AS DOKUMENTART,T.* from TBDD_INDEX_MAN T, TBDD_DOKUMENTART T1 where T.ACTIVE = 1 AND T.DOK_ID = T1.GUID AND T.DOK_ID = " & dokartid)
DT_INDEXEMAN = ClassDatabase.Return_Datatable("select T1.BEZEICHNUNG AS DOKUMENTART,T.* from TBDD_INDEX_MAN T, TBDD_DOKUMENTART T1 where T.ACTIVE = 1 AND T.DOK_ID = T1.GUID AND T.DOK_ID = " & dokartid & " ORDER BY T.SEQUENCE")
pnlIndex.Visible = True
LoadIndexe_Man()
Catch ex As System.Exception
@@ -1550,7 +1589,8 @@ Public Class frmIndex
Sub PreviewFile()
Try
Dim Proc As New System.Diagnostics.Process
Me.pnlWebbrowser.Visible = False
Me.grpbxMailBody.Visible = False
Me.grpBetreff.Visible = False
Me.pnlPDF.Visible = False
CURRENT_HTML_DOC = ""
If Not CURRENT_WORKFILE.EndsWith("msg") Then
@@ -1582,50 +1622,56 @@ Public Class frmIndex
End If
Next
Case Else
Console.WriteLine(Path.GetExtension(CURRENT_WORKFILE))
Dim psi As New ProcessStartInfo(UniversalViewer, """" & CURRENT_WORKFILE & """")
Proc.EnableRaisingEvents = True
Proc.StartInfo = psi
Proc.Start()
If My.Settings.DoNot_Show_Documents = False And UniversalViewer <> "" Then
If File.Exists(UniversalViewer) Then
Console.WriteLine(Path.GetExtension(CURRENT_WORKFILE))
Dim psi As New ProcessStartInfo(UniversalViewer, """" & CURRENT_WORKFILE & """")
Proc.EnableRaisingEvents = True
Proc.StartInfo = psi
Proc.Start()
End If
End If
End Select
End If
Else
Me.pnlWebbrowser.Dock = DockStyle.Fill
Dim msg_email As New Msg.Message(CURRENT_WORKFILE)
'Eine tempfile generieren
Dim tempFilename = My.Computer.FileSystem.GetTempFileName()
Dim name = Path.GetFileNameWithoutExtension(tempFilename)
tempFilename = Path.Combine(Path.GetDirectoryName(tempFilename), name & ".html")
'tempfile löschen
If My.Computer.FileSystem.FileExists(tempFilename) Then
My.Computer.FileSystem.DeleteFile(tempFilename)
End If
Me.grpBetreff.Dock = DockStyle.Top
Me.grpbxMailBody.Dock = DockStyle.Fill
Dim msg_email As New Msg.Message(CURRENT_WORKFILE)
'Eine tempfile generieren
Dim tempFilename = My.Computer.FileSystem.GetTempFileName()
Dim name = Path.GetFileNameWithoutExtension(tempFilename)
tempFilename = Path.Combine(Path.GetDirectoryName(tempFilename), name & ".html")
'tempfile löschen
If My.Computer.FileSystem.FileExists(tempFilename) Then
My.Computer.FileSystem.DeleteFile(tempFilename)
End If
Me.txtBetreff.Text = msg_email.Subject
'Try
Dim wFile As System.IO.FileStream
Dim byteData() As Byte
byteData = msg_email.BodyHtml
'Try
Dim wFile As System.IO.FileStream
Dim byteData() As Byte
byteData = msg_email.BodyHtml
' MsgBox(msg_email.InternetCodePage)
' wFile = New FileStream(tempFilename, FileMode.Append)
' wFile.Write(byteData, 0, byteData.Length)
' wFile.Close()
'Catch ex As IOException
' MsgBox(ex.ToString)
'End Try
' MsgBox(msg_email.InternetCodePage)
' wFile = New FileStream(tempFilename, FileMode.Append)
' wFile.Write(byteData, 0, byteData.Length)
' wFile.Close()
'Catch ex As IOException
' MsgBox(ex.ToString)
'End Try
Dim vIn() As Byte = msg_email.BodyHtml
Dim vOut As String = System.Text.Encoding.UTF8.GetString(vIn)
File.WriteAllText(tempFilename, vOut, System.Text.Encoding.UTF8)
Dim vIn() As Byte = msg_email.BodyHtml
Dim vOut As String = System.Text.Encoding.UTF8.GetString(vIn)
File.WriteAllText(tempFilename, vOut, System.Text.Encoding.UTF8)
CURRENT_HTML_DOC = tempFilename
Me.tslblWebbrowser.Text = CURRENT_HTML_DOC
WebBrowser.Navigate("file:///" & CURRENT_HTML_DOC)
Me.pnlWebbrowser.Visible = True
CURRENT_HTML_DOC = tempFilename
Me.tslblWebbrowser.Text = CURRENT_HTML_DOC
WebBrowser.Navigate("file:///" & CURRENT_HTML_DOC)
Me.grpbxMailBody.Visible = True
Me.grpBetreff.Visible = True
Me.SplitContainer1.Panel2Collapsed = False
SplitContainer1.SplitterDistance = My.Settings.SplitterDistance_Viewer
SplitContainer1.SplitterDistance = My.Settings.SplitterDistance_Viewer
End If
' Dim psi1 As New ProcessStartInfo("""" & CURRENT_WORKFILE & """")
' Proc.EnableRaisingEvents = True
@@ -1690,7 +1736,7 @@ Public Class frmIndex
ElseIf DropType = "@ATTMNTEXTRACTED@" Then
'Die temporäre Datei löschen
File.Delete(CURRENT_WORKFILE)
ElseIf (DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_OUTLOOK_MESSAGE@") Then
ElseIf (DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Or DropType = "@MSGONLY@") Then
'Die temporäre Datei löschen
File.Delete(CURRENT_WORKFILE)
ElseIf DropType = "@FW_SIMPLEINDEXER@" Then
@@ -1729,7 +1775,6 @@ Public Class frmIndex
lblerror.Visible = False
Me.Cursor = Cursors.WaitCursor
If chkMultiIndexer.Visible = True And chkMultiIndexer.Checked = True Then
'Die erste Datei indexieren
If WORK_FILE() = True Then
'Und nun die folgenden
@@ -1739,7 +1784,7 @@ Public Class frmIndex
For Each filerow As DataRow In DTFiles2Work.Rows
CURRENT_WORKFILE_GUID = filerow.Item("GUID")
CURRENT_WORKFILE = filerow.Item("FILENAME2WORK")
DropType = filerow.Item("HANDLE_TYPE")
'Dim HandleType As String = filerow.Item("HANDLE_TYPE")
'If HandleType = "@DROPFROMFSYSTEM@" Then
' DropType = "dragdrop file"
@@ -1755,7 +1800,7 @@ Public Class frmIndex
Next
Me.Cursor = Cursors.Default
If err = False Then
MsgBox("Alle Dateien wurden mit Multiindexing erfolgreich verarbeitet!", MsgBoxStyle.Information, "Erfolgsmeldung:")
MsgBox("Alle Dateien wurden mit Multiindexing erfolgreich verarbeitet!", MsgBoxStyle.Information, "Erfolgsmeldung:")
Me.Close()
End If
End If
@@ -1763,11 +1808,14 @@ Public Class frmIndex
Else
If WORK_FILE() = True Then
Me.Cursor = Cursors.Default
MsgBox("Die Datei wurde erfolgreich verarbeitet!" & vbNewLine & "Ablagepfad:" & vbNewLine & CURRENT_NEWFILENAME, MsgBoxStyle.Information, "Erfolgsmeldung")
If My.Settings.Show_IndexResult = True Then
MsgBox("Die Datei wurde erfolgreich verarbeitet!" & vbNewLine & "Ablagepfad:" & vbNewLine & CURRENT_NEWFILENAME, MsgBoxStyle.Information, "Erfolgsmeldung")
End If
Me.Close()
End If
End If
Me.Cursor = Cursors.Default
End Sub
Private Function Move_File2_Target()
@@ -1780,7 +1828,7 @@ Public Class frmIndex
Dim exp2WD As Boolean = False
If DropType = "@DROPFROMFSYSTEM@" Or DropType = "@OUTLOOK_ATTACHMENT@" Or DropType = "@ATTMNTEXTRACTED@" Or DropType = "@FW_SIMPLEINDEXER@" Then
exp2WD = SINGLEFILE_2_WINDREAM(CURR_DOKART_OBJECTTYPE)
ElseIf DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_OUTLOOK_MESSAGE@" Then
ElseIf DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Or DropType = "@MSGONLY@" Then
exp2WD = SINGLEFILE_2_WINDREAM(CURR_DOKART_OBJECTTYPE)
End If
If exp2WD = True Then
@@ -1804,7 +1852,28 @@ Public Class frmIndex
Dim Insert_String As String
Try
Insert_String = sql_history_INSERT_INTO & ",ADDED_WHO) VALUES ('" & CURRENT_WORKFILE & "','" & CURRENT_NEWFILENAME & "'" & sql_history_Index_Values & ",'" & Environment.UserDomainName & "\" & Environment.UserName & "')"
ClassDatabase.Execute_Scalar(Insert_String, MyConnectionString)
ClassDatabase.Execute_Scalar(Insert_String, MyConnectionString, True)
If DropType.Contains("MSG") Or DropType = "@ATTMNTEXTRACTED@" Then
If CURRENT_MESSAGEID <> "" Then
Dim max As String = "SELECT MAX(GUID) FROM TBGI_HISTORY"
Dim GUID = ClassDatabase.Execute_Scalar(max, MyConnectionString, True)
Try
If GUID > 0 Then
Dim sqlUpdate As String
If DropType = "@ATTMNTEXTRACTED@" Then
sqlUpdate = "Update TBGI_HISTORY SET ATTACHMENT = 1, MSG_ID = '" & CURRENT_MESSAGEID & "' WHERE GUID = " & GUID
ClassDatabase.Execute_non_Query(sqlUpdate, True)
Else
sqlUpdate = "Update TBGI_HISTORY SET ATTACHMENT = 0, MSG_ID = '" & CURRENT_MESSAGEID & "' WHERE GUID = " & GUID
ClassDatabase.Execute_non_Query(sqlUpdate, True)
End If
End If
Catch ex As Exception
End Try
End If
End If
Catch ex As Exception
MsgBox("Error in Insert-History - View logfile: " & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add(" - Fehler bei Insert-History - Fehler: " & vbNewLine & ex.Message)
@@ -2084,4 +2153,14 @@ Public Class frmIndex
Delete_OriginFile = chkdelete_origin.Checked
SaveConfigValue("Delete_OriginFile", Delete_OriginFile)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Select Case CURRENT_ABBRUCH
Case 0
CURRENT_ABBRUCH = 1
Case 1
CURRENT_ABBRUCH = 2
End Select
Me.Close()
End Sub
End Class