This commit is contained in:
Digital Data - Marlon Schreiber
2018-11-07 15:11:52 +01:00
parent 844a423f7d
commit 24f052f5b5
88 changed files with 2833 additions and 159059 deletions

View File

@@ -8,9 +8,10 @@ Imports WINDREAMLib.WMSearchRelation
Imports WMOBRWSLib
Imports WMOSRCHLib
Imports System.IO
Imports DigitalData.Modules.Logging
Public Class clsWindream_allgemein
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
Dim Logger As Logger
#Region "+++++ Konstanten +++++"
Const DEBUG = AUS
Const AUS = 0
@@ -32,7 +33,8 @@ Public Class clsWindream_allgemein
''' Konstruktor für die windream-Klasse
''' </summary>
''' <remarks></remarks>
Sub New()
Sub New(MyLogger As LogConfig)
Logger = MyLogger.GetLogger()
' wenn ein Fehler bei der Initialisierung auftrat
If Not Init() Then
' Nachricht ausgeben
@@ -71,7 +73,7 @@ Public Class clsWindream_allgemein
' setzt die minimal erwartete windream-Version
oConnect.MinReqVersion = "3"
' Logger.Info("Personifizierung'")
' Logger.Debug("Personifizierung'")
' -- Impersonifizierung nur möglich mit registry-eintrag --
'oConnect.UserName = "\digitaldata\SchreiberM"
@@ -79,8 +81,8 @@ Public Class clsWindream_allgemein
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
oConnect.LoginSession(oSession)
Logger.Info("windream-Server: '" & GetCurrentServer() & "'")
Logger.Info("windream-UserName: '" & oConnect.UserName & "'")
Logger.Debug("windream-Server: '" & GetCurrentServer() & "'")
Logger.Debug("windream-UserName: '" & oConnect.UserName & "'")
If oSession.aLoggedin = False Then
Logger.Warn("Es konnte keine Verbindung mit dem windream-Server hergestellt werden")
@@ -114,7 +116,7 @@ Public Class clsWindream_allgemein
End Try
End If
Logger.Info("Alles OK - Erfolgreich angemeldet und Session aufgebaut")
Logger.Debug("Alles OK - Erfolgreich angemeldet und Session aufgebaut")
Return True
Catch ex As Exception
@@ -299,9 +301,9 @@ Public Class clsWindream_allgemein
''' </summary>
''' <returns>Servername als String</returns>
''' <remarks></remarks>
Public Shared Function GetCurrentServer() As String
Public Function GetCurrentServer() As String
Try
Logger.Info(oBrowser.GetCurrentServer.ToString)
Logger.Debug(oBrowser.GetCurrentServer.ToString)
Return oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
Catch ex As Exception
Logger.Error(ex)
@@ -349,7 +351,7 @@ Public Class clsWindream_allgemein
''' <param name="indexname">Name des zu überprüfenden Indexfeldes</param>
''' <returns>Liefert eine Zahl, die einen Typen beschreibt</returns>
''' <remarks></remarks>
Public Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
Public Shared Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
Try
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
Dim vType = oAttribute.getVariableValue("dwAttrType")
@@ -393,14 +395,14 @@ Public Class clsWindream_allgemein
Return Nothing
End Try
End Function
Public Shared Function WDObject_exists(wdobj_location As String)
Public Function WDObject_exists(wdobj_location As String)
Dim WDObject As WMObject
Try
WDObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, wdobj_location.Substring(2))
If WDObject Is Nothing Then
Return False
Else
Logger.Info("WDObject exists")
Logger.Debug("WDObject exists")
Return True
End If
@@ -410,17 +412,17 @@ Public Class clsWindream_allgemein
Return False
End Try
End Function
Public Shared Function GetSearchDocuments(ByVal wdfLocation As String)
Public Function GetSearchDocuments(ByVal wdfLocation As String)
'wdfLocation = 'W:\System\Suchen\WDRH\TestPDF.wdf'
Try
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
Logger.Warn("WMSearch: " & wdfLocation.ToLower)
Logger.Debug("WMSearch: " & wdfLocation.ToLower)
If System.IO.File.Exists(wdfLocation.ToLower) Then
Logger.Info("Search exists")
Logger.Debug("Search exists")
End If
oController.CheckSearchProfile(wdfLocation.ToLower) 'wdfLocation.ToLower)
Logger.Info("oController erzeugt")
Logger.Debug("oController erzeugt")
Dim suchTyp = oController.SearchProfileTargetProgID
Dim ExSettings As Object
Dim oSearch As Object
@@ -430,8 +432,8 @@ Public Class clsWindream_allgemein
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
Logger.Info("WD Objekte in GetSearchDocuments erzeugt")
Logger.Info(suchTyp.ToString.ToUpper)
Logger.Debug("WD Objekte in GetSearchDocuments erzeugt")
Logger.Debug(suchTyp.ToString.ToUpper)
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
Select Case suchTyp.ToString.ToUpper
Case "WMOSRCH.WMQUICKSEARCH"
@@ -444,15 +446,15 @@ Public Class clsWindream_allgemein
Case "WMOSRCH.WMINDEXSEARCH"
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
Logger.Info("Session created...")
Logger.Debug("Session created...")
oConnect.LoginSession(srchIndex.WMSession)
Logger.Info("LoginSession...")
Logger.Debug("LoginSession...")
srchIndex.SearchProfilePath = SearchPath
Logger.Info("SearchPath...")
Logger.Debug("SearchPath...")
srchIndex.LoadSearchProfile(SearchName)
Logger.Info("LoadSearchProfile...")
Logger.Debug("LoadSearchProfile...")
oSearch = srchIndex.GetSearch()
Logger.Info("GetSearch...")
Logger.Debug("GetSearch...")
Case "WMOSRCH.WMOBJECTTYPESEARCH"
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchObjectType.WMSession)
@@ -468,15 +470,110 @@ Public Class clsWindream_allgemein
End Select
Dim WMObjects As Object
WMObjects = oSearch.Execute
Logger.Info("WD Objekte werden zurückgegeben")
Logger.Debug("WD Objekte werden zurückgegeben")
Return oSearch.execute
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
Public Function GetSearchDocumentsDT(ByVal wdfLocation As String, NameIndexDocID As String, NameIndexCreated As String) As DataTable
Dim dtresult As New DataTable
dtresult.Columns.Add("DOC_ID", GetType(Integer))
dtresult.Columns.Add("PATH", GetType(String))
dtresult.Columns.Add("CREATED", GetType(DateAndTime))
Logger.Debug($"Executing WMSearch: {wdfLocation}...")
Try
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
Dim oWMSZPath = wdfLocation.Substring(2).ToLower
Logger.Debug("oWMSZPath: " & oWMSZPath)
Try
oController.CheckSearchProfile(oWMSZPath) 'wdfLocation.ToLower)
Catch ex As Exception
Dim msg As String = ex.Message
Try
Logger.Debug("Unexpected Error in Creating oController: " & msg)
Logger.Debug("...NOW trying to implement \\windream\Objects ...")
Dim WmSearch_wmobject = "\\windream\Objects" & oWMSZPath
WmSearch_wmobject = WmSearch_wmobject.ToLower
oController.CheckSearchProfile(WmSearch_wmobject) 'wdfLocation.ToLower)
Catch ex1 As Exception
Logger.Warn("UnexpectedError im CreateController: " & msg)
Logger.Error(ex1)
Return dtresult
End Try
End Try
Logger.Debug("oController erzeugt")
Dim suchTyp = oController.SearchProfileTargetProgID
Dim ExSettings As Object
Dim oSearch As Object
ExSettings = oController.SearchProfileExSettings
If ExSettings = 0 Then ExSettings = 7
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
Logger.Debug("WMObjekte in GetSearchDocumentsDT erzeugt")
Logger.Debug(suchTyp.ToString.ToUpper)
Select Case suchTyp.ToString.ToUpper
Case "WMOSRCH.WMQUICKSEARCH"
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchQuick.WMSession)
srchQuick.ClearSearch()
srchQuick.SearchProfilePath = SearchPath
srchQuick.LoadSearchProfile(SearchName)
oSearch = srchQuick.GetSearch()
Case "WMOSRCH.WMINDEXSEARCH"
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
Logger.Debug("Session created...")
oConnect.LoginSession(srchIndex.WMSession)
Logger.Debug("LoginSession...")
srchIndex.SearchProfilePath = SearchPath
Logger.Debug("SearchPath...")
srchIndex.LoadSearchProfile(SearchName)
Logger.Debug("LoadSearchProfile...")
oSearch = srchIndex.GetSearch()
Logger.Debug("GetSearch...")
Case "WMOSRCH.WMOBJECTTYPESEARCH"
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchObjectType.WMSession)
srchObjectType.ClearSearch()
srchObjectType.SearchProfilePath = SearchPath
srchObjectType.LoadSearchProfile(SearchName)
oSearch = srchObjectType.GetSearch()
Case Else
Logger.Warn("KEIN GÜLTIGER WINDREAM-SUCHTYP")
Return Nothing
End Select
Dim WMObjects As Object
WMObjects = oSearch.Execute
'If returnDT = True Then
If WMObjects.Count > 0 Then
For Each dok As WMObject In WMObjects
Dim path As String = dok.aPath
Dim DOC_ID = dok.GetVariableValue(NameIndexDocID)
Logger.Debug("Adding DocInfo for DocID: " & DOC_ID.ToString)
dtresult.Rows.Add(DOC_ID, path, dok.GetVariableValue(NameIndexCreated))
Next
dtresult.AcceptChanges()
Else
Logger.Info($"No results for WMSearch: {wdfLocation}!!")
End If
Return dtresult
Catch ex As Exception
Logger.Error(ex)
Return dtresult
End Try
End Function
#End Region