jj: Windream - improve documentation

This commit is contained in:
Jonathan Jenne 2018-10-24 15:54:39 +02:00
parent b2bc096837
commit 028456660f
2 changed files with 101 additions and 59 deletions

View File

@ -17,26 +17,51 @@ Public Class ConnectionBuilder
Me.LogConfig = LogConfig
End Sub
''' <summary>
''' Sets flag in Windream class to reconnect on lost connection
''' </summary>
''' <returns>A IConnectionBuilder instance to allow for chaining</returns>
Public Function WithSessionReconnect() As IConnectionBuilder Implements IConnectionBuilder.WithSessionReconnect
SessionReconnect = True
Return Me
End Function
''' <summary>
''' Sets the drive letter of windream drive, default is "W"
''' </summary>
''' <param name="driveLetter">The drive letter to use</param>
''' <returns>A IConnectionBuilder instance to allow for chaining</returns>
Public Function WithDriveLetter(driveLetter As String) As IConnectionBuilder Implements IConnectionBuilder.WithDriveLetter
Me.DriveLetter = driveLetter
Return Me
End Function
''' <summary>
''' Sets flag in Windream class to indicate 64-bit support
''' </summary>
''' <returns>A IConnectionBuilder instance to allow for chaining</returns>
Public Function With64BitSupport() As IConnectionBuilder Implements IConnectionBuilder.With64BitSupport
Support64Bit = True
Return Me
End Function
''' <summary>
''' Sets the servername in Windream class, overriding the client setting
''' </summary>
''' <param name="serverName"></param>
''' <returns>A IConnectionBuilder instance to allow for chaining</returns>
Public Function WithServerName(serverName As String) As IConnectionBuilder Implements IConnectionBuilder.WithServerName
Me.ServerName = serverName
Return Me
End Function
''' <summary>
''' Sets the username, password and domain in Windream class, overriding the client settings
''' </summary>
''' <param name="userName">The username used for the connection</param>
''' <param name="password">The password used for the connection</param>
''' <param name="domain">The domain used for the connection</param>
''' <returns>A IConnectionBuilder instance to allow for chaining</returns>
Public Function WithImpersonation(userName As String, password As String, domain As String) As IConnectionBuilder Implements IConnectionBuilder.WithImpersonation
Me.UserName = userName
Me.Password = password
@ -44,6 +69,11 @@ Public Class ConnectionBuilder
Return Me
End Function
''' <summary>
''' Creates a connection.
''' </summary>
''' <exception cref="Exceptions.SessionException">If there was an error while establishing the connection</exception>
''' <returns>A Windream Object</returns>
Public Function Connect() As Windream2 Implements IConnectionBuilder.Connect
Return New Windream2(LogConfig, SessionReconnect, DriveLetter, Support64Bit, ServerName, UserName, Password, Domain)
End Function

View File

@ -9,18 +9,17 @@ Imports WMOTOOLLib
Imports System.IO
Imports DigitalData.Modules.Logging
''' <module>Windream</module>
''' <version>0.0.0.2</version>
''' <date>23.10.2018</date>
''' <summary>
''' MODULE: Windream
'''
''' VERSION: 0.0.0.2
'''
''' DATE: 08.10.2018
'''
''' DESCRIPTION:
'''
''' DEPENDENCIES: NLog, >= 4.5.8
'''
''' PARAMETERS: LogConfig, DigitalData.Modules.Logging.LogConfig
''' Module that provides methods to access the Windream ECM
''' </summary>
''' <dependencies>
''' NLog, >= 4.5.8
''' </dependencies>
''' <params>
''' LogConfig, DigitalData.Modules.Logging.LogConfig
''' The LogFactory containing the current log config. Used to instanciate the class logger for this and any dependent class
'''
''' ClientDriveLetter, String
@ -43,19 +42,27 @@ Imports DigitalData.Modules.Logging
'''
''' SessionDomain, String
''' User-domain that is used in the connection. If this is `Nothing`, the currently signed in user is used
'''
''' PROPERTIES: ClientDriveLetter, String (readonly)
''' </params>
''' <props>
''' ClientDriveLetter, String (readonly)
''' ClientSupports64Bit, Boolean (readonly)
''' Session, IWMSession2 (readonly)
''' SessionLoggedin, Boolean (readonly)
''' SessionReconnect, Boolean (readonly)
''' SessionServername, String (readonly)
''' Objecttypes, List(Of String) (readonly)
'''
''' EXAMPLES:
'''
''' REMARKS: This class should not be instanciated directly. Instead, ConnectionBuilder should be used.
''' </summary>
''' </props>
''' <example>
''' _windream = New ConnectionBuilder(LogConfig).
''' WithDriveLetter("W").
''' WithSessionReconnect().
''' With64BitSupport().
''' WithServerName("sdd-vmx02-aps01").
''' Connect()
''' </example>
''' <remarks>
''' This class should not be instanciated directly. Instead, ConnectionBuilder should be used.
''' </remarks>
Public Class Windream2
#Region "Private Properties"
Private ReadOnly _logger As Logger
@ -71,7 +78,7 @@ Public Class Windream2
Public ReadOnly Property ClientSupports64Bit As Boolean
Public ReadOnly Property Session As IWMSession2
Public ReadOnly Property SessionLoggedin As Boolean
Public ReadOnly Property SessionLoggedin As Boolean = False
Public ReadOnly Property SessionReconnect As Boolean
Public ReadOnly Property SessionServername As String
@ -621,6 +628,12 @@ Public Class Windream2
End Try
End Function
''' <summary>
''' Returns the result of a search file
''' </summary>
''' <param name="SearchFilePath">Path of a search file (*.wdf)</param>
''' <param name="DocIdIndexName">Index containing the Document-ID</param>
''' <returns>A datatable of the results with columns PATH and DOCID</returns>
Public Function GetSearchDocuments(SearchFilePath As String, DocIdIndexName As String) As DataTable
Dim oDatatable As New DataTable
oDatatable.Columns.Add("PATH", GetType(String))
@ -706,27 +719,20 @@ Public Class Windream2
End Try
End Function
''' <summary>
''' Gets an array of the actual vektorvalues of index, collated with the passed values
''' </summary>
''' <param name="WMDoc">windream-file as WMObject</param>
''' <param name="WindreamObject">windream-file as WMObject</param>
''' <param name="IndexName">Indexname as String</param>
''' <param name="NewValues">The new values as Array</param>
''' <param name="CheckDuplikat">True if duplicates shall be prevented</param>
''' <exception cref="Exceptions.SessionException"></exception>
Public Function GetVektorData_Combined(ByVal WMDoc As WMObject, IndexName As String, NewValues As Object, CheckDuplikat As Boolean)
Public Function GetVektorData_Combined(ByVal WindreamObject As WMObject, IndexName As String, NewValues As Object, CheckDuplikat As Boolean)
Try
Dim oAnzahl As Integer = 0
Dim oValueArray()
'Jeden Wert des Vektorfeldes durchlaufen
Dim oWMValue = WMDoc.GetVariableValue(IndexName)
Dim oWMValue = WindreamObject.GetVariableValue(IndexName)
If oWMValue Is Nothing = False Then
'Nochmals prüfen ob wirklich Array
If oWMValue.GetType.ToString.Contains("System.Object") Then
@ -819,6 +825,13 @@ Public Class Windream2
Return Nothing
End Try
End Function
''' <summary>
''' Sets objecttype of a folder
''' </summary>
''' <param name="FolderPath"></param>
''' <param name="Objecttype"></param>
''' <returns></returns>
Public Function SetFolderObjecttype(FolderPath As String, Objecttype As String) As Boolean
If TestSessionLoggedIn() = False Then
Return False
@ -869,8 +882,7 @@ Public Class Windream2
End If
Try
Dim oTempSession As IWMSession2 = DirectCast(Session, IWMSession2)
Dim oWMObject As WMObject = oTempSession.GetWMObjectByName(WMEntityAttribute, Path)
Dim oWMObject As WMObject = Session.GetWMObjectByName(WMEntityAttribute, Path)
If oWMObject Is Nothing Then
Return False