MONSTER: Rename Monorepo to Modules, only keep Projects under Modules.*
This commit is contained in:
118
Windream/ConnectionBuilder.vb
Normal file
118
Windream/ConnectionBuilder.vb
Normal file
@@ -0,0 +1,118 @@
|
||||
Imports NLog
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Windream
|
||||
Imports DigitalData.Modules.Language
|
||||
|
||||
Public Class ConnectionBuilder
|
||||
Implements IConnectionBuilder
|
||||
|
||||
Private ReadOnly LogConfig As LogConfig
|
||||
Private SessionReconnect As Boolean = False
|
||||
Private DriveLetter As String = "W"
|
||||
Private BasePath As String = BASE_PATH
|
||||
Private Support64Bit As Boolean = False
|
||||
Private ServerName As String = Nothing
|
||||
Private UserName As String = Nothing
|
||||
Private Password As String = Nothing
|
||||
Private Domain As String = Nothing
|
||||
|
||||
Private Const BASE_PATH As String = "\\windream\objects"
|
||||
|
||||
Public Sub New(LogConfig As LogConfig)
|
||||
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
|
||||
BasePath = String.Empty
|
||||
Return Me
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Sets the drive letter to String.Empty, use \\windream\objects as Windream base path
|
||||
''' </summary>
|
||||
''' <param name="BasePath">The windream base path, eg. \\windream\objects</param>
|
||||
''' <returns>A IConnectionBuilder instance to allow for chaining</returns>
|
||||
Public Function WithWindreamObjects(BasePath As String) As IConnectionBuilder Implements IConnectionBuilder.WithWindreamObjects
|
||||
BasePath = BasePath
|
||||
DriveLetter = String.Empty
|
||||
Return Me
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Sets the drive letter to String.Empty, use \\windream\objects as Windream base path
|
||||
''' </summary>
|
||||
''' <returns>A IConnectionBuilder instance to allow for chaining</returns>
|
||||
Public Function WithWindreamObjects() As IConnectionBuilder Implements IConnectionBuilder.WithWindreamObjects
|
||||
BasePath = BASE_PATH
|
||||
DriveLetter = String.Empty
|
||||
Return Me
|
||||
End Function
|
||||
|
||||
Public Function WithWindreamObjectsOrDriveLetter(BasePath As String, DriveLetter As String) As IConnectionBuilder Implements IConnectionBuilder.WithWindreamObjectsOrDriveLetter
|
||||
If Utils.NotNull(BasePath, Nothing) IsNot Nothing Then
|
||||
Return WithWindreamObjects(BasePath)
|
||||
ElseIf Utils.NotNull(DriveLetter, Nothing) IsNot Nothing Then
|
||||
Return WithDriveLetter(DriveLetter)
|
||||
Else
|
||||
Return WithWindreamObjects()
|
||||
End If
|
||||
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
|
||||
Me.Domain = domain
|
||||
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 Windream Implements IConnectionBuilder.Connect
|
||||
Return New Windream(LogConfig, SessionReconnect, DriveLetter, BasePath, Support64Bit, ServerName, UserName, Password, Domain)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user