MS2501
This commit is contained in:
@@ -7,6 +7,7 @@ Imports Oracle.ManagedDataAccess.Client
|
||||
Imports System.Text
|
||||
Imports System.Security.AccessControl
|
||||
Imports System.Security.Principal
|
||||
Imports System.DirectoryServices
|
||||
|
||||
Public Class frmIndex
|
||||
#Region "+++++ Variablen ++++++"
|
||||
@@ -337,7 +338,7 @@ Public Class frmIndex
|
||||
' Return 99
|
||||
' End Try
|
||||
' End Function
|
||||
Function GetManIndex_Value(indexname As String, RequestFor As String)
|
||||
Function GetManIndex_Value(indexname As String, RequestFor As String, opt As Boolean)
|
||||
Try
|
||||
Dim DT As DataTable
|
||||
Dim DR As DataRow
|
||||
@@ -355,15 +356,16 @@ Public Class frmIndex
|
||||
Else
|
||||
If DR.Item("Indexwert").ToString <> String.Empty Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >>Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert"), False)
|
||||
Console.WriteLine("Rückgabe manueller wert: " & DR.Item("Indexwert"))
|
||||
Return DR.Item("Indexwert")
|
||||
Else
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & indexname & "')", MyConnectionString, True)
|
||||
If optional_index = False Then
|
||||
If opt = False Then
|
||||
ClassLogger.Add(" >> Achtung, der Indexwert des manuellen Indexes '" & indexname & "' ist String.empty!", False)
|
||||
showlblhinweis("Indexiert = True - Der Index: " & DR.Item("INDEXNAME") & " wurde nicht ordnungsgemäss indexiert! - Automatischer Index konnte nicht gesetzt werden!")
|
||||
Return Nothing
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Return Nothing
|
||||
|
||||
End If
|
||||
End If
|
||||
Case Else
|
||||
@@ -371,12 +373,14 @@ Public Class frmIndex
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >>Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert"), False)
|
||||
Return DR.Item("Indexwert")
|
||||
Else
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & indexname & "')", MyConnectionString, True)
|
||||
If optional_index = False Then
|
||||
'Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & indexname & "')", MyConnectionString, True)
|
||||
If opt = False Then
|
||||
ClassLogger.Add(" >> Achtung, der Indexwert des manuellen Indexes '" & indexname & "' ist String.empty!", False)
|
||||
showlblhinweis("Indexiert = True - Der Index: " & DR.Item("INDEXNAME") & " wurde nicht ordnungsgemäss indexiert! - Automatischer Index konnte nicht gesetzt werden!")
|
||||
Return Nothing
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Return Nothing
|
||||
End If
|
||||
End Select
|
||||
Else
|
||||
@@ -438,7 +442,7 @@ Public Class frmIndex
|
||||
End If
|
||||
|
||||
If ergebnis Is Nothing Then
|
||||
showlblhinweis("Kein Ergebnis für automatisches SQL: " & vsqlstatement)
|
||||
'showlblhinweis("Kein Ergebnis für automatisches SQL: " & vsqlstatement)
|
||||
Return ""
|
||||
Else
|
||||
Return ergebnis
|
||||
@@ -952,13 +956,13 @@ Public Class frmIndex
|
||||
End If
|
||||
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
|
||||
For Each element As System.Text.RegularExpressions.Match In elemente
|
||||
Console.WriteLine(element.ToString)
|
||||
Select Case element.Value.Substring(2, 1).ToUpper
|
||||
'Manueller Indexwert
|
||||
Case "M"
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >>Manueller Index wird geprüft...", False)
|
||||
Dim Indexname = element.Value.Substring(3, element.Value.Length - 4)
|
||||
Dim value As String = GetManIndex_Value(element.Value.Substring(3, element.Value.Length - 4), "FILE")
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & Indexname & "')", MyConnectionString, True)
|
||||
Dim value As String = GetManIndex_Value(Indexname, "FILE", optional_index)
|
||||
If value <> String.Empty Then
|
||||
DATEINAME = DATEINAME.Replace(element.Value, value)
|
||||
NewFileString = DATEINAME
|
||||
@@ -966,7 +970,7 @@ Public Class frmIndex
|
||||
AnzahlIndexe += 1
|
||||
sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
|
||||
Else
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & Indexname & "')", MyConnectionString, True)
|
||||
|
||||
If optional_index = True Then
|
||||
Dim result As MsgBoxResult
|
||||
result = MessageBox.Show("Achtung der optionale Index ist leer, wird aber für die Benennung der Datei benutzt." & vbNewLine & "Wollen Sie stattdessen den Originaldateinamen verwenden?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
@@ -993,11 +997,16 @@ Public Class frmIndex
|
||||
Case "A"
|
||||
Dim value As String = GetAutoIndex_Value(element.Value.Substring(3, element.Value.Length - 4))
|
||||
If value <> String.Empty Then
|
||||
DATEINAME = DATEINAME.Replace(element.Value, value)
|
||||
NewFileString = DATEINAME
|
||||
sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
|
||||
AnzahlIndexe += 1
|
||||
sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
|
||||
If value = "EMPTY_OI" Then
|
||||
DATEINAME = DATEINAME.Replace(element.Value, "")
|
||||
NewFileString = DATEINAME
|
||||
Else
|
||||
DATEINAME = DATEINAME.Replace(element.Value, value)
|
||||
NewFileString = DATEINAME
|
||||
sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
|
||||
AnzahlIndexe += 1
|
||||
sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
|
||||
End If
|
||||
Else
|
||||
err = True
|
||||
End If
|
||||
@@ -1024,12 +1033,21 @@ Public Class frmIndex
|
||||
datetemp = _day & "_" & _Month & "_" & My.Computer.Clock.LocalTime.Year.ToString.Substring(2)
|
||||
Case "DD_MM_YYYY"
|
||||
datetemp = _day & "_" & _Month & "_" & My.Computer.Clock.LocalTime.Year
|
||||
Case "YYMMDD"
|
||||
datetemp = My.Computer.Clock.LocalTime.Year.ToString.Substring(2) & _Month & _day
|
||||
Case "YYYYMMDD"
|
||||
datetemp = My.Computer.Clock.LocalTime.Year & _Month & _day
|
||||
Case "DDMMYY"
|
||||
datetemp = _day & _Month & My.Computer.Clock.LocalTime.Year.ToString.Substring(2)
|
||||
Case "DDMMYYYY"
|
||||
datetemp = _day & _Month & My.Computer.Clock.LocalTime.Year
|
||||
Case "OFilename"
|
||||
DATEINAME = DATEINAME.Replace(element.Value, System.IO.Path.GetFileNameWithoutExtension(CURRENT_WORKFILE))
|
||||
Case "Username"
|
||||
Case "Username".ToUpper
|
||||
DATEINAME = DATEINAME.Replace(element.Value, Environment.UserName)
|
||||
Case "Usercode"
|
||||
Case "Usercode".ToUpper
|
||||
DATEINAME = DATEINAME.Replace(element.Value, CURRENT_USER_SHORT)
|
||||
Case ""
|
||||
End Select
|
||||
If datetemp <> "" Then
|
||||
DATEINAME = DATEINAME.Replace(element.Value, datetemp)
|
||||
@@ -1063,9 +1081,24 @@ Public Class frmIndex
|
||||
MsgBox("Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper, MsgBoxStyle.Exclamation, "Unexpected error in Name generieren:")
|
||||
End Select
|
||||
Next
|
||||
CURRENT_NEWFILENAME = ClassFilehandle.CleanFilename(CURRENT_NEWFILENAME, "")
|
||||
CURRENT_NEWFILENAME = NewFileString & extension
|
||||
CURRENT_NEWFILENAME = ClassFilehandle.CleanFilename(NewFileString, "")
|
||||
|
||||
If CURRENT_NEWFILENAME.EndsWith("_") Then
|
||||
CURRENT_NEWFILENAME = CURRENT_NEWFILENAME.Substring(0, CURRENT_NEWFILENAME.Length - 1)
|
||||
End If
|
||||
If CURRENT_NEWFILENAME.StartsWith("_") Then
|
||||
CURRENT_NEWFILENAME = CURRENT_NEWFILENAME.Substring(1)
|
||||
End If
|
||||
If CURRENT_NEWFILENAME.Contains("__") Then
|
||||
CURRENT_NEWFILENAME = CURRENT_NEWFILENAME.Replace("__", "_")
|
||||
End If
|
||||
CURRENT_NEWFILENAME &= extension
|
||||
Dim sollfilename = System.IO.Path.GetFileName(CURRENT_NEWFILENAME)
|
||||
If sollfilename.StartsWith("_") Then
|
||||
sollfilename = sollfilename.Substring(1)
|
||||
Dim _path = System.IO.Path.GetDirectoryName(CURRENT_NEWFILENAME)
|
||||
CURRENT_NEWFILENAME = _path & "\" & sollfilename
|
||||
End If
|
||||
Dim path = System.IO.Path.GetDirectoryName(CURRENT_NEWFILENAME)
|
||||
If folder_Created = False Then
|
||||
' Den Zielordner erstellen
|
||||
@@ -1108,26 +1141,29 @@ Public Class frmIndex
|
||||
Dim idxvalue = row.Item("Indexwert")
|
||||
Dim indexname = row.Item("WD_INDEX").ToString
|
||||
Dim optional_Index = CBool(row.Item("OPTIONAL"))
|
||||
If CBool(row.Item("Indexiert")) = True And idxvalue.ToString <> "" Then
|
||||
Dim indexiert = CBool(row.Item("Indexiert"))
|
||||
If indexiert And idxvalue.ToString <> "" And idxvalue <> "EMPTY_OI" Then
|
||||
If indexname <> String.Empty Then
|
||||
'Den Indexwert zwischenspeichern
|
||||
Dim DTTemp As DataTable = MyDataset.TBTEMP_INDEXRESULTS
|
||||
Dim rowexists As Boolean = False
|
||||
For Each rowTemp As DataRow In DTTemp.Rows
|
||||
'Wenn bereits ein Eintrag existiert.....
|
||||
If rowTemp.Item("Dokumentart") = row.Item("DOKUMENTART") And rowTemp.Item("Indexname") = row.Item("INDEXNAME") Then
|
||||
rowexists = True
|
||||
'......überschreiben
|
||||
rowTemp.Item("Value") = row.Item("Indexwert")
|
||||
If row.Item("SAVE_VALUE") = True Then
|
||||
'Den Indexwert zwischenspeichern
|
||||
Dim DTTemp As DataTable = MyDataset.TBTEMP_INDEXRESULTS
|
||||
Dim rowexists As Boolean = False
|
||||
For Each rowTemp As DataRow In DTTemp.Rows
|
||||
'Wenn bereits ein Eintrag existiert.....
|
||||
If rowTemp.Item("Dokumentart") = row.Item("DOKUMENTART") And rowTemp.Item("Indexname") = row.Item("INDEXNAME") Then
|
||||
rowexists = True
|
||||
'......überschreiben
|
||||
rowTemp.Item("Value") = row.Item("Indexwert")
|
||||
End If
|
||||
Next
|
||||
'.....ansonsten neu anlegen
|
||||
If rowexists = False Then
|
||||
Dim newRow As DataRow = DTTemp.NewRow()
|
||||
newRow("Dokumentart") = row.Item("DOKUMENTART").ToString
|
||||
newRow("Indexname") = row.Item("INDEXNAME").ToString
|
||||
newRow("Value") = row.Item("Indexwert")
|
||||
DTTemp.Rows.Add(newRow)
|
||||
End If
|
||||
Next
|
||||
'.....ansonsten neu anlegen
|
||||
If rowexists = False Then
|
||||
Dim newRow As DataRow = DTTemp.NewRow()
|
||||
newRow("Dokumentart") = row.Item("DOKUMENTART").ToString
|
||||
newRow("Indexname") = row.Item("INDEXNAME").ToString
|
||||
newRow("Value") = row.Item("Indexwert")
|
||||
DTTemp.Rows.Add(newRow)
|
||||
End If
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Manueller Indexvalue: " & idxvalue.ToString, False)
|
||||
@@ -1155,28 +1191,31 @@ Public Class frmIndex
|
||||
If DTAut.Rows.Count > 0 Then
|
||||
Dim Count As Integer = 0
|
||||
For Each row As DataRow In DTAut.Rows
|
||||
If CBool(row.Item("Indexiert")) = True And row.Item("Indexwert").ToString <> "" Then
|
||||
Dim indexname = row.Item("INDEXNAME").ToString
|
||||
Dim idxvalue = row.Item("Indexwert")
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Auto Indexvalue: " & idxvalue.ToString, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexvalue: " & idxvalue.ToString, False)
|
||||
Count += 1
|
||||
indexierung_erfolgreich = ClassWindream.DateiIndexieren(CURRENT_NEWFILENAME, indexname, idxvalue)
|
||||
If indexierung_erfolgreich = False Then
|
||||
MsgBox("Error in indexing file - See log", MsgBoxStyle.Critical)
|
||||
Return False
|
||||
Exit For
|
||||
Dim indexiert = CBool(row.Item("Indexiert"))
|
||||
Dim Indexvalue = row.Item("Indexwert").ToString
|
||||
Dim indexname = row.Item("INDEXNAME").ToString
|
||||
If indexiert = True And Indexvalue <> "" Then
|
||||
If Indexvalue <> "EMPTY_OI" Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Auto Indexname: " & indexname.ToString, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexvalue: " & Indexvalue.ToString, False)
|
||||
Count += 1
|
||||
indexierung_erfolgreich = ClassWindream.DateiIndexieren(CURRENT_NEWFILENAME, indexname, Indexvalue)
|
||||
If indexierung_erfolgreich = False Then
|
||||
MsgBox("Error in indexing file - See log", MsgBoxStyle.Critical)
|
||||
Return False
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
If DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Or DropType = "@MSGONLY@" Or CURRENT_NEWFILENAME.EndsWith(".msg") Then
|
||||
If DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Or DropType = "|MSGONLY|" Or CURRENT_NEWFILENAME.EndsWith(".msg") Then
|
||||
indexierung_erfolgreich = SetEmailIndices()
|
||||
If indexierung_erfolgreich = False Then
|
||||
MsgBox("Error in SetEmailIndices - See log", MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End If
|
||||
ElseIf DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
|
||||
ElseIf DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
|
||||
indexierung_erfolgreich = SetAttachmentIndices()
|
||||
If indexierung_erfolgreich = False Then
|
||||
MsgBox("Error in SetEmailIndices - See log", MsgBoxStyle.Critical)
|
||||
@@ -1206,7 +1245,20 @@ Public Class frmIndex
|
||||
Private Function SetEmailIndices()
|
||||
Dim indexierung_erfolgreich As Boolean = False
|
||||
Try
|
||||
Dim msg As New Msg.Message(CURRENT_NEWFILENAME)
|
||||
Dim msg As Msg.Message = New Msg.Message(CURRENT_NEWFILENAME)
|
||||
Dim msgDisplayTo = msg.DisplayTo
|
||||
Dim msgInternetAccountName = msg.InternetAccountName
|
||||
If LogErrorsOnly = False Then
|
||||
ClassLogger.Add("", False)
|
||||
ClassLogger.Add(" >> msgInternetAccountName: " & msgInternetAccountName, False)
|
||||
ClassLogger.Add(" >> SenderName: " & msg.SenderName, False)
|
||||
ClassLogger.Add(" >> SenderEmailAddress: " & msg.SenderEmailAddress, False)
|
||||
ClassLogger.Add(" >> ReceivedByName: " & msg.ReceivedByName, False)
|
||||
ClassLogger.Add(" >> ReceivedByEmailAddress: " & msg.ReceivedByEmailAddress, False)
|
||||
ClassLogger.Add("", False)
|
||||
End If
|
||||
|
||||
|
||||
'Console.WriteLine("Subject: " + msg.Subject)
|
||||
'Console.WriteLine("MessageDeliveryTime:" & msg.MessageDeliveryTime)
|
||||
'Console.WriteLine("SenderName: " + msg.SenderName)
|
||||
@@ -1247,7 +1299,7 @@ Public Class frmIndex
|
||||
' Regular Expressions vorbereiten
|
||||
Dim fromPattern As String = ClassDatabase.Execute_Scalar("SELECT REGEX FROM TBGI_FUNCTION_REGEX WHERE FUNCTION_NAME = 'FROM_EMAIL_HEADER'", MyConnectionString)
|
||||
Dim toPattern As String = ClassDatabase.Execute_Scalar("SELECT REGEX FROM TBGI_FUNCTION_REGEX WHERE FUNCTION_NAME = 'TO_EMAIL_HEADER'", MyConnectionString)
|
||||
|
||||
Dim finalize_pattern As String = ClassDatabase.Execute_Scalar("SELECT REGEX FROM TBGI_FUNCTION_REGEX WHERE FUNCTION_NAME = 'FINALIZE'", MyConnectionString)
|
||||
If fromPattern <> "" And toPattern <> "" Then
|
||||
Dim FromRegexList As New List(Of Regex)
|
||||
Dim ToRegexList As New List(Of Regex)
|
||||
@@ -1259,30 +1311,86 @@ Public Class frmIndex
|
||||
|
||||
' Email Header auslesen
|
||||
Dim headers As String = ClassEmailHeaderExtractor.getMessageHeaders(msg)
|
||||
Dim emailFrom As String
|
||||
Dim emailTo As String
|
||||
Dim emailFrom
|
||||
Dim emailTo
|
||||
' Email Absender und Empfänger
|
||||
If headers Is Nothing Then
|
||||
If msg.DisplayTo Is Nothing Then
|
||||
If IsNothing(msgDisplayTo) Then
|
||||
ClassLogger.Add(" >> DisplayTo in email is nothing - default will be set", False)
|
||||
emailTo = "NO RECIPIENT"
|
||||
Else
|
||||
emailTo = msg.DisplayTo.Replace("'", "")
|
||||
emailTo = msgDisplayTo.ToString.Replace("'", "")
|
||||
End If
|
||||
If msg.InternetAccountName Is Nothing Then
|
||||
If IsNothing(msgInternetAccountName) Then
|
||||
ClassLogger.Add(" >> InternetAccountName in email is nothing - default will be set", False)
|
||||
emailFrom = ""
|
||||
Else
|
||||
emailFrom = msg.InternetAccountName.Replace("'", "")
|
||||
emailFrom = msgInternetAccountName.ToString.Replace("'", "")
|
||||
End If
|
||||
Else
|
||||
emailFrom = ClassEmailHeaderExtractor.extractFromAddress(headers, FromRegexList)
|
||||
emailTo = ClassEmailHeaderExtractor.extractToAddress(headers, ToRegexList)
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailTo and From Extraction via messageheader.", False)
|
||||
emailFrom = ClassEmailHeaderExtractor.extractFromAddress1(headers, fromPattern) 'FromRegexList)
|
||||
emailFrom = ClassEmailHeaderExtractor.extractFromAddress1(emailFrom, finalize_pattern)
|
||||
emailTo = ClassEmailHeaderExtractor.extractFromAddress1(headers, toPattern) ' extractToAddress(headers, ToRegexList)
|
||||
emailTo = ClassEmailHeaderExtractor.extractFromAddress1(emailTo, finalize_pattern)
|
||||
|
||||
If IsNothing(emailFrom) Or IsNothing(emailTo) Then
|
||||
MsgBox("Unhandled Exception in SetEmailIndices - emailfrom or recipiant are empty and defaults could not be set." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
emailFrom = emailFrom.Replace("<", "")
|
||||
emailFrom = emailFrom.Replace(">", "")
|
||||
If Not IsNothing(emailTo) Then
|
||||
emailTo = emailTo.Replace("<", "")
|
||||
emailTo = emailTo.Replace(">", "")
|
||||
End If
|
||||
If Not IsNothing(emailTo) Then
|
||||
Dim _duplicatesCheck As List(Of String) = New List(Of String)
|
||||
_duplicatesCheck = emailTo.ToString.Split(";").ToList
|
||||
' Filter distinct elements, and convert back into list.
|
||||
Dim result As List(Of String) = _duplicatesCheck.Distinct().ToList
|
||||
' Display result.
|
||||
Dim i As Integer = 0
|
||||
For Each element As String In result
|
||||
If i = 0 Then
|
||||
emailTo = element
|
||||
Else
|
||||
emailTo = emailTo & ";" & element
|
||||
End If
|
||||
i += 1
|
||||
Next
|
||||
End If
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add("", True)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Headers-Content: ", True)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(headers.ToString, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add("", True)
|
||||
End If
|
||||
'Handler für leere emailFrom-Adresse
|
||||
If IsNothing(emailFrom) Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailFrom couldn't be extracted from messageheader...", False)
|
||||
If Not IsNothing(msg.SenderEmailAddress) Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailFrom via msg.SenderEmailAddress will be used instead!", False)
|
||||
emailFrom = msg.SenderEmailAddress.ToString.Replace("'", "")
|
||||
Else
|
||||
MsgBox("Could't get 'emailfrom' from messageHeader." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
'Handler für leere emailTo-Adresse
|
||||
If IsNothing(emailTo) Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailTo couldn't be extracted from messageheader...", False)
|
||||
If (headers.Contains("exc") Or headers.Contains("exchange")) Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> ...try with LDAP-option", False)
|
||||
Dim _email = GetUserEmailfromLDAP(msgDisplayTo)
|
||||
If _email <> "" Then
|
||||
emailTo = _email
|
||||
Else
|
||||
ClassLogger.Add(">> email-adress couldn't be read from LDAP with name '" & msgDisplayTo & "'", False)
|
||||
MsgBox("Could't get 'emailto' from messageHeader and later on with LDAP-Option." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> no exchange patterns found in headers!", False)
|
||||
MsgBox("Could't get 'emailto' from messageHeader and exhange-Patterns weren't found." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailFrom: " & emailFrom, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailTo: " & emailTo, False)
|
||||
@@ -1338,6 +1446,37 @@ Public Class frmIndex
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
Public Function GetUserEmailfromLDAP(ByVal userName As String) As String
|
||||
|
||||
Dim domainName As String = Environment.UserDomainName '"PutYourDomainNameHere" '< Change this value to your actual domain name. For example: "yahoo"
|
||||
Dim dommain As String = "com" '<change this value to your actual domain region. For example: "com" as in "yahoo.com"
|
||||
|
||||
Dim path As String = String.Format("LDAP://CN=User,DC={0}", domainName)
|
||||
Dim userEmail As String = String.Empty
|
||||
|
||||
Using search As DirectorySearcher = New DirectorySearcher(path)
|
||||
Dim result As SearchResult
|
||||
Try
|
||||
search.Filter = "(SAMAccountName=" & userName & ")"
|
||||
search.PropertiesToLoad.Add("mail")
|
||||
result = search.FindOne()
|
||||
Catch ex As Exception
|
||||
search.Filter = ""
|
||||
search.Filter = "(GivenName=" & userName & ")"
|
||||
search.PropertiesToLoad.Add("mail")
|
||||
End Try
|
||||
|
||||
Try
|
||||
result = search.FindOne()
|
||||
If result IsNot Nothing Then userEmail = result.Properties("mail").ToString
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Unexpected Error in GetUserEmail from LDAP: " & ex.Message, False)
|
||||
End Try
|
||||
End Using
|
||||
|
||||
Return userEmail
|
||||
|
||||
End Function
|
||||
Private Function SetAttachmentIndices()
|
||||
Dim indexierung_erfolgreich As Boolean = True
|
||||
@@ -1498,26 +1637,26 @@ Public Class frmIndex
|
||||
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
|
||||
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_MSGONLY@" Then
|
||||
ElseIf DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Then
|
||||
Select Case DropType
|
||||
Case "@FW_MSGONLY@"
|
||||
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@"
|
||||
Case "|OUTLOOK_MESSAGE|"
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> .msg-file through dragdrop", False)
|
||||
Me.Text = "Indexierung der msg-Datei (ohne Anhang):"
|
||||
End Select
|
||||
|
||||
ElseIf DropType = "@MSGONLY@" Then
|
||||
ElseIf DropType = "|MSGONLY|" Then
|
||||
Me.Text = "Indexierung der msg-Datei (ohne Anhang):"
|
||||
ElseIf DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
|
||||
ElseIf DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
|
||||
CURRENT_ISATTACHMENT = True
|
||||
Me.Text = "Indexierung eines Email-Attachments:"
|
||||
ElseIf DropType = "@FW_SIMPLEINDEXER@" Then
|
||||
ElseIf DropType = "|FW_SIMPLEINDEXER|" Then
|
||||
Me.Text = "Indexierung einer Folderwatch-Datei:"
|
||||
End If
|
||||
txtIndexfilepath.Text = CURRENT_WORKFILE
|
||||
@@ -1602,8 +1741,11 @@ Public Class frmIndex
|
||||
lblhinweis.Visible = False
|
||||
lblerror.Visible = False
|
||||
Me.pnlIndex.Controls.Clear()
|
||||
Dim sql As String = "Select WINDREAM_DIRECT from TBDD_DOKUMENTART WHERE GUID = " & cmbDokumentart.SelectedValue
|
||||
WDDirect = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
|
||||
Dim sql As String = "Select WINDREAM_DIRECT, DUPLICATE_HANDLING from TBDD_DOKUMENTART WHERE GUID = " & cmbDokumentart.SelectedValue
|
||||
Dim DT_DOKART As DataTable = ClassDatabase.Return_Datatable(sql)
|
||||
|
||||
WDDirect = DT_DOKART.Rows(0).Item("WINDREAM_DIRECT")
|
||||
CURRENT_DOKART_DUPLICATE_HANDLING = DT_DOKART.Rows(0).Item("DUPLICATE_HANDLING")
|
||||
Refresh_IndexeMan(cmbDokumentart.SelectedValue)
|
||||
End If
|
||||
|
||||
@@ -1613,12 +1755,12 @@ Public Class frmIndex
|
||||
Private Sub Refresh_IndexeMan(dokartid As Integer)
|
||||
Dim sql
|
||||
Try
|
||||
Sql = "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"
|
||||
sql = "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"
|
||||
DT_INDEXEMAN = ClassDatabase.Return_Datatable(sql)
|
||||
pnlIndex.Visible = True
|
||||
LoadIndexe_Man()
|
||||
Catch ex As System.Exception
|
||||
ClassLogger.Add(" - Fehler Refresh_IndexeMan: DOKART-ID: " & dokartid & " - Fehler: " & vbNewLine & ex.Message & vbNewLine & Sql)
|
||||
ClassLogger.Add(" - Fehler Refresh_IndexeMan: DOKART-ID: " & dokartid & " - Fehler: " & vbNewLine & ex.Message & vbNewLine & sql)
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Refresh_IndexeMan:")
|
||||
End Try
|
||||
End Sub
|
||||
@@ -1723,6 +1865,7 @@ Public Class frmIndex
|
||||
If DT_INDEXAUTOM.Rows.Count > 0 Then
|
||||
' MsgBox(DT.Rows.Count.ToString)
|
||||
For Each DR_AUTOINDEX As DataRow In DT_INDEXAUTOM.Rows
|
||||
Dim optionalIndex As Boolean
|
||||
Dim indexname As String = DR_AUTOINDEX.Item("INDEXNAME")
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Build Automatischer Index '" & indexname & "'", False)
|
||||
If DR_AUTOINDEX.Item("SQL_RESULT").ToString <> String.Empty And CBool(DR_AUTOINDEX.Item("SQL_ACTIVE")) = True Then
|
||||
@@ -1736,6 +1879,7 @@ Public Class frmIndex
|
||||
Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(SqlString)
|
||||
' alle Vorkommen der Indexe im SQL-String durchlaufen
|
||||
For Each element As System.Text.RegularExpressions.Match In elemente
|
||||
|
||||
' MsgBox(element.Value.ToUpper)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Element: '" & element.Value & "'", False)
|
||||
'' wenn es sich nicht um dedizeirte Werte handelt (es sollen ja nur die Indexe ausgelesen werden)
|
||||
@@ -1743,17 +1887,60 @@ Public Class frmIndex
|
||||
'die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
|
||||
Dim elementOhneSonderzeichen As String = element.Value.Substring(2, element.Value.Length - 3)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> elementOhneSonderzeichen: '" & elementOhneSonderzeichen & "'", False)
|
||||
'den Platzhalter im SQL-String durch den Wert ersetzen
|
||||
Dim manIndexwert = GetManIndex_Value(elementOhneSonderzeichen, "IDX_AUTO")
|
||||
optionalIndex = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & elementOhneSonderzeichen & "')", MyConnectionString, True)
|
||||
If elementOhneSonderzeichen.StartsWith("$") Then 'windowsParameter
|
||||
Dim result = ""
|
||||
Try
|
||||
Select Case elementOhneSonderzeichen.ToString.ToUpper
|
||||
Case "$filename_ext".ToUpper
|
||||
result = Path.GetFileName(CURRENT_WORKFILE)
|
||||
Case "$filename".ToUpper
|
||||
result = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
|
||||
Case "$extension".ToUpper
|
||||
result = Path.GetExtension(CURRENT_WORKFILE)
|
||||
result = result.Replace(".", "")
|
||||
Case "$FileCreateDate".ToUpper
|
||||
Dim FI As New FileInfo(CURRENT_WORKFILE)
|
||||
Dim CreationDate As Date = FI.CreationTime
|
||||
result = CreationDate.ToShortDateString
|
||||
Case "$FileCreatedWho".ToUpper
|
||||
Dim fs As FileSecurity = File.GetAccessControl(CURRENT_WORKFILE)
|
||||
Dim sid As IdentityReference = fs.GetOwner(GetType(SecurityIdentifier))
|
||||
Dim ntaccount As IdentityReference = sid.Translate(GetType(NTAccount))
|
||||
Dim owner As String = ntaccount.ToString()
|
||||
result = owner
|
||||
Case "$DateDDMMYYY".ToUpper
|
||||
result = System.DateTime.Now.ToShortDateString
|
||||
Case "$Username"
|
||||
result = Environment.UserName
|
||||
Case "$Usercode"
|
||||
result = CURRENT_USER_SHORT
|
||||
End Select
|
||||
Catch ex As Exception
|
||||
result = "XXX"
|
||||
ClassLogger.Add(" - Unexpected error in FillIndexe_Autom - WindowsFilePatterns - Fehler: " & vbNewLine & ex.Message)
|
||||
MsgBox("Unexpected error in Replacement WindowsFilePatterns: " & vbNewLine & ex.Message & vbNewLine & vbNewLine & "Routine will continue - Please check logfile", MsgBoxStyle.Exclamation, )
|
||||
End Try
|
||||
If result <> "" Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> file-related parameter found: '" & elementOhneSonderzeichen & "' - Result: '" & result & "'", False)
|
||||
SqlString = SqlString.Replace(element.Value, result)
|
||||
Else
|
||||
ClassLogger.Add(">> Attention: file-related parameter '" & elementOhneSonderzeichen & "' returned an empty string!", False)
|
||||
End If
|
||||
Else 'ganz normaler manueller Index
|
||||
'den Platzhalter im SQL-String durch den Wert ersetzen
|
||||
Dim manIndexwert = GetManIndex_Value(elementOhneSonderzeichen, "IDX_AUTO", optionalIndex)
|
||||
If Not IsNothing(manIndexwert) Then
|
||||
SqlString = SqlString.Replace(element.Value, manIndexwert)
|
||||
|
||||
If Not IsNothing(manIndexwert) Then
|
||||
SqlString = SqlString.Replace(element.Value, manIndexwert)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> zusammengesetzter SQL-String: " & SqlString, False)
|
||||
Else
|
||||
ClassLogger.Add(">> Attention: manIndexwert is NOTHING - Funktion: FillIndexe_Autom", False)
|
||||
Return False
|
||||
Else
|
||||
ClassLogger.Add(">> Attention: manIndexwert is NOTHING - Funktion: FillIndexe_Autom", False)
|
||||
' Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Replaced and complete SQL-result: " & SqlString, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ausführen SQL....", False)
|
||||
Dim automatischerValue As String = ""
|
||||
automatischerValue = Get_AutomatischerIndex_SQL(SqlString, DR_AUTOINDEX.Item("CONNECTION_ID"), DR_AUTOINDEX.Item("SQL_PROVIDER"))
|
||||
@@ -1762,9 +1949,16 @@ Public Class frmIndex
|
||||
DR_AUTOINDEX.Item("Indexiert") = True
|
||||
DR_AUTOINDEX.Item("Indexwert") = automatischerValue
|
||||
Else
|
||||
ClassLogger.Add(" - ACHTUNG: automatischerValue = String.Empty - Funktion: FillIndexe_Autom", False)
|
||||
ClassLogger.Add(" - SqlString: " & SqlString, False)
|
||||
Return False
|
||||
If optionalIndex = True Then
|
||||
DR_AUTOINDEX.Item("Indexiert") = True
|
||||
DR_AUTOINDEX.Item("Indexwert") = "EMPTY_OI"
|
||||
' Return True
|
||||
Else
|
||||
ClassLogger.Add(" - ACHTUNG: automatischerValue = String.Empty - Funktion: FillIndexe_Autom", False)
|
||||
ClassLogger.Add(" - SqlString: " & SqlString, False)
|
||||
' Return False
|
||||
End If
|
||||
|
||||
End If
|
||||
Else
|
||||
If Not IsDBNull(DR_AUTOINDEX.Item("VALUE")) Then
|
||||
@@ -1778,6 +1972,8 @@ Public Class frmIndex
|
||||
DEFAULTVALUE = Path.GetFileName(CURRENT_WORKFILE)
|
||||
Case "$filename".ToUpper
|
||||
DEFAULTVALUE = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
|
||||
Case "$extension".ToUpper
|
||||
DEFAULTVALUE = Path.GetExtension(CURRENT_WORKFILE)
|
||||
Case "$FileCreateDate".ToUpper
|
||||
Dim FI As New FileInfo(CURRENT_WORKFILE)
|
||||
Dim CreationDate As Date = FI.CreationTime
|
||||
@@ -1851,7 +2047,6 @@ Public Class frmIndex
|
||||
End If
|
||||
Next
|
||||
Case ".xlsx"
|
||||
Console.WriteLine("xlsx file")
|
||||
Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName("excel")
|
||||
Dim filename As String = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
|
||||
For Each p As Process In pProcess
|
||||
@@ -1862,7 +2057,6 @@ Public Class frmIndex
|
||||
Case Else
|
||||
If My.Settings.DoNot_Show_Documents = False And UniversalViewer_Path <> "" Then
|
||||
If File.Exists(UniversalViewer_Path) Then
|
||||
Console.WriteLine(Path.GetExtension(CURRENT_WORKFILE))
|
||||
Dim psi As New ProcessStartInfo(UniversalViewer_Path, """" & CURRENT_WORKFILE & """")
|
||||
Proc.EnableRaisingEvents = True
|
||||
Proc.StartInfo = psi
|
||||
@@ -1978,6 +2172,7 @@ Public Class frmIndex
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei " & CURRENT_WORKFILE & " wird nun indexiert...", False)
|
||||
If FillIndexe_Autom(Me.cmbDokumentart.SelectedValue) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...FillIndexe_Autom durchlaufen", False)
|
||||
|
||||
'Den Zielnamen zusammenbauen
|
||||
If Name_Generieren() = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...Name_Generieren durchlaufen", False)
|
||||
@@ -1988,23 +2183,23 @@ Public Class frmIndex
|
||||
If Move_File2_Target() = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...Move_File2_Target durchlaufen", False)
|
||||
'Die Originaldatei löschen
|
||||
If DropType = "@DROPFROMFSYSTEM@" Then
|
||||
If DropType = "|DROPFROMFSYSTEM|" Then
|
||||
If chkdelete_origin.Checked = True Then
|
||||
'Die temporäre Datei löschen
|
||||
DeleteFile()
|
||||
End If
|
||||
ElseIf DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
|
||||
ElseIf DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
|
||||
'Die temporäre Datei löschen
|
||||
If CURRENT_WORKFILE.EndsWith("pdf") Then
|
||||
Me.PdfViewer1.DocumentFilePath = ""
|
||||
End If
|
||||
|
||||
DeleteFile()
|
||||
ElseIf (DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Or DropType = "@MSGONLY@") Then
|
||||
ElseIf (DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Or DropType = "|MSGONLY|") Then
|
||||
'Die temporäre Datei löschen
|
||||
DeleteFile()
|
||||
|
||||
ElseIf DropType = "@FW_SIMPLEINDEXER@" Then
|
||||
ElseIf DropType = "|FW_SIMPLEINDEXER|" Then
|
||||
'Die temporäre Datei löschen
|
||||
DeleteFile()
|
||||
|
||||
@@ -2059,11 +2254,11 @@ Public Class frmIndex
|
||||
CURRENT_WORKFILE = filerow.Item("FILENAME2WORK")
|
||||
DropType = filerow.Item("HANDLE_TYPE")
|
||||
'Dim HandleType As String = filerow.Item("HANDLE_TYPE")
|
||||
'If HandleType = "@DROPFROMFSYSTEM@" Then
|
||||
'If HandleType = "|DROPFROMFSYSTEM|" Then
|
||||
' DropType = "dragdrop file"
|
||||
'ElseIf HandleType = "@OUTLOOK_ATTMNT@" Then
|
||||
'ElseIf HandleType = "|OUTLOOK_ATTMNT|" Then
|
||||
' DropType = "dragdrop attachment"
|
||||
'ElseIf HandleType = "@OUTLOOKMESSAGE@" Then
|
||||
'ElseIf HandleType = "|OUTLOOKMESSAGE|" Then
|
||||
' DropType = "dragdrop message"
|
||||
'End If
|
||||
If WORK_FILE() = False Then
|
||||
@@ -2115,9 +2310,9 @@ Public Class frmIndex
|
||||
End If
|
||||
End If
|
||||
|
||||
If DropType = "@DROPFROMFSYSTEM@" Or DropType = "@OUTLOOK_ATTACHMENT@" Or DropType = "@ATTMNTEXTRACTED@" Or DropType = "@FW_SIMPLEINDEXER@" Then
|
||||
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_MSGONLY@" Or DropType = "@MSGONLY@" 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
|
||||
@@ -2136,14 +2331,14 @@ Public Class frmIndex
|
||||
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, True)
|
||||
If DropType.Contains("MSG") Or DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
|
||||
If DropType.Contains("MSG") Or DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" 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@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
|
||||
If DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
|
||||
sqlUpdate = "Update TBGI_HISTORY SET ATTACHMENT = 1, MSG_ID = '" & CURRENT_MESSAGEID & "' WHERE GUID = " & GUID
|
||||
ClassDatabase.Execute_non_Query(sqlUpdate, True)
|
||||
Else
|
||||
@@ -2187,7 +2382,6 @@ Public Class frmIndex
|
||||
|
||||
Private Sub PdfViewer1_ZoomChanged(sender As Object, e As DevExpress.XtraPdfViewer.PdfZoomChangedEventArgs)
|
||||
If Not PdfViewer1.ZoomMode = DevExpress.XtraPdfViewer.PdfZoomMode.Custom Then
|
||||
Console.WriteLine(PdfViewer1.ZoomMode)
|
||||
'SaveMySettingsValue("PDFViewer_ZoomMode", PdfViewer1.ZoomMode)
|
||||
'PDFViewer_ZoomMode = PdfViewer1.ZoomMode
|
||||
End If
|
||||
@@ -2221,14 +2415,14 @@ Public Class frmIndex
|
||||
' alle Vorkommen innerhalb des Ordnerstrings durchlaufen
|
||||
For Each element As System.Text.RegularExpressions.Match In elemente
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Elementname in FolderString: '" & element.ToString & "'", False)
|
||||
Console.WriteLine(element.ToString)
|
||||
Select Case element.Value.Substring(2, 1).ToUpper
|
||||
|
||||
'Manueller Indexwert
|
||||
Case "M"
|
||||
Dim ManIndexname = element.Value.Substring(3, element.Value.Length - 4)
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & ManIndexname & "')", MyConnectionString, True)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Versuch den Indexwert aus '" & ManIndexname & "' auszulesen.", False)
|
||||
Dim ManIndex_Value As String = GetManIndex_Value(ManIndexname, "FILE")
|
||||
Dim ManIndex_Value As String = GetManIndex_Value(ManIndexname, "FILE", optional_index)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ergebnis/Wert für neuen Ordner: '" & ManIndexname & "'", False)
|
||||
If Not ManIndex_Value = String.Empty Then
|
||||
If IsDate(ManIndex_Value) Then
|
||||
@@ -2237,7 +2431,7 @@ Public Class frmIndex
|
||||
folderindex = folderindex.Replace(element.ToString, ManIndex_Value)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPattern: '" & folderindex & "'", False)
|
||||
Else
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & ManIndexname & "')", MyConnectionString, True)
|
||||
|
||||
If optional_index = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Optionaler Indexwert ist NICHT gefüllt", False)
|
||||
Else
|
||||
@@ -2251,8 +2445,13 @@ Public Class frmIndex
|
||||
Dim AutoIndex_Value As String = GetAutoIndex_Value(AutoIndexname)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ergebnis/Wert für neuen Ordner: '" & AutoIndexname & "'", False)
|
||||
If Not AutoIndex_Value = String.Empty Then
|
||||
folderindex = folderindex.Replace(element.ToString, AutoIndex_Value)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPattern: '" & folderindex & "'", False)
|
||||
If AutoIndex_Value = "EMPTY_OI" Then
|
||||
folderindex = folderindex.Replace(element.ToString, "")
|
||||
Else
|
||||
folderindex = folderindex.Replace(element.ToString, AutoIndex_Value)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPattern: '" & folderindex & "'", False)
|
||||
End If
|
||||
|
||||
Else
|
||||
ClassLogger.Add(" - Achtung Ausnahme in 'CrFolderForIndex': der Index ist leer!", True)
|
||||
End If
|
||||
@@ -2316,38 +2515,65 @@ Public Class frmIndex
|
||||
|
||||
End If
|
||||
|
||||
'Die aktuelle Datei soll gleichzeitig verschoben werden
|
||||
Dim extension As String = Path.GetExtension(CURRENT_NEWFILENAME)
|
||||
Dim Dateiname As String = Path.GetFileName(CURRENT_NEWFILENAME)
|
||||
Dim _Pfad, _WDLaufwerk, _Ziel As String
|
||||
_Ziel = fullpath & Dateiname
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ziel: " & _Ziel, False)
|
||||
'Nur verschieben und überprüfen wenn Pfad ungleich
|
||||
Dim quell = Path.GetDirectoryName(CURRENT_NEWFILENAME)
|
||||
Dim ziel = Path.GetDirectoryName(_Ziel)
|
||||
If quell <> ziel Then
|
||||
Dim Stammname As String = _Ziel.Substring(0, _Ziel.LastIndexOf("."))
|
||||
Dim version As Integer = 2
|
||||
Do While File.Exists(_Ziel) = True
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Achtung: Datei ' " & Path.GetFileName(_Ziel) & "' existiert bereits!", False)
|
||||
Dim neuername As String = Stammname & "~" & version & extension
|
||||
_Ziel = neuername
|
||||
version = version + 1
|
||||
Loop
|
||||
CURRENT_NEWFILENAME = _Ziel
|
||||
' My.Computer.FileSystem.MoveFile(fullfilename, _Ziel)
|
||||
ClassLogger.Add(" >> Dateiname wurde nach CrFolderIndex-Methode erzeugt", False)
|
||||
CURRENT_NEWFILENAME = _Ziel
|
||||
Else
|
||||
ClassLogger.Add(" >> Quell- und Zielordner identisch", False)
|
||||
'ClassLogger.Add(" >> (CrFolderForIndex) Quell- und Zielordner identisch", False)
|
||||
'If Path.GetFileName(fullfilename) <> Path.GetFileName(_Ziel) And File.Exists(_Ziel) Then
|
||||
' ClassLogger.Add(" >> (CrFolderForIndex) Quell- und Zielname nicht identisch", False)
|
||||
' FileSystem.Rename(_Ziel, Path.GetDirectoryName(_Ziel) & Path.GetFileName(fullfilename))
|
||||
' ClassLogger.Add(" >> Datei wurde nach CrFolderIndex-Methode umbenannt", False)
|
||||
' CURRENT_NEWFILENAME = _Ziel
|
||||
'End If
|
||||
End If
|
||||
''Die aktuelle Datei soll gleichzeitig verschoben werden
|
||||
'Dim extension As String = Path.GetExtension(CURRENT_NEWFILENAME)
|
||||
'Dim Dateiname As String = Path.GetFileName(CURRENT_NEWFILENAME)
|
||||
'Dim _Pfad, _WDLaufwerk, _Ziel As String
|
||||
'_Ziel = fullpath & Dateiname
|
||||
'If LogErrorsOnly = False Then ClassLogger.Add(" >> Ziel: " & _Ziel, False)
|
||||
''Nur verschieben und überprüfen wenn Pfad ungleich
|
||||
'Dim quell = Path.GetDirectoryName(CURRENT_NEWFILENAME)
|
||||
'Dim ziel = Path.GetDirectoryName(_Ziel)
|
||||
'If quell <> ziel Then
|
||||
' If CURRENT_DOKART_DUPLICATE_HANDLING = "Default" Or CURRENT_DOKART_DUPLICATE_HANDLING = "Question" Then
|
||||
' ''##########
|
||||
' Dim msg = "Eine Datei mit identischem Namen existiert bereits! Wollen Sie die bestehende Datei ersetzen?"
|
||||
' If USER_LANGUAGE <> "de-DE" Then
|
||||
' msg = "Ther is already a file with the same name! Would You like to replace the file?"
|
||||
' End If
|
||||
' Dim result As MsgBoxResult
|
||||
' result = MessageBox.Show(msg, "File alredy exists:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
' If result = MsgBoxResult.No Then
|
||||
' _Ziel = ClassFilehandle.Versionierung_Datei(_Ziel).ToString.Substring(2)
|
||||
' Else
|
||||
' If ClassWindream.Delete_WDFile(_Ziel.Substring(2)) = False Then
|
||||
' Return False
|
||||
' End If
|
||||
' End If
|
||||
' ElseIf CURRENT_DOKART_DUPLICATE_HANDLING = "New version" Then
|
||||
' _Ziel = ClassFilehandle.Versionierung_Datei(_Ziel).ToString.Substring(2)
|
||||
' End If
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
' 'Dim Stammname As String = _Ziel.Substring(0, _Ziel.LastIndexOf("."))
|
||||
' 'Dim version As Integer = 2
|
||||
' 'Do While File.Exists(_Ziel) = True
|
||||
' ' If LogErrorsOnly = False Then ClassLogger.Add(" >> Achtung: Datei ' " & Path.GetFileName(_Ziel) & "' existiert bereits!", False)
|
||||
' ' Dim neuername As String = Stammname & "~" & version & extension
|
||||
' ' _Ziel = neuername
|
||||
' ' version = version + 1
|
||||
' 'Loop
|
||||
' If _Ziel.StartsWith("\") Then
|
||||
' CURRENT_NEWFILENAME = "W:" & _Ziel
|
||||
' Else
|
||||
' CURRENT_NEWFILENAME = _Ziel
|
||||
' End If
|
||||
|
||||
' ' My.Computer.FileSystem.MoveFile(fullfilename, _Ziel)
|
||||
' ClassLogger.Add(" >> Dateiname wurde nach CrFolderIndex-Methode erzeugt", False)
|
||||
'Else
|
||||
' ClassLogger.Add(" >> Quell- und Zielordner identisch", False)
|
||||
' 'ClassLogger.Add(" >> (CrFolderForIndex) Quell- und Zielordner identisch", False)
|
||||
' 'If Path.GetFileName(fullfilename) <> Path.GetFileName(_Ziel) And File.Exists(_Ziel) Then
|
||||
' ' ClassLogger.Add(" >> (CrFolderForIndex) Quell- und Zielname nicht identisch", False)
|
||||
' ' FileSystem.Rename(_Ziel, Path.GetDirectoryName(_Ziel) & Path.GetFileName(fullfilename))
|
||||
' ' ClassLogger.Add(" >> Datei wurde nach CrFolderIndex-Methode umbenannt", False)
|
||||
' ' CURRENT_NEWFILENAME = _Ziel
|
||||
' 'End If
|
||||
'End If
|
||||
|
||||
Return True
|
||||
'Else
|
||||
|
||||
Reference in New Issue
Block a user