Imports NLog
Imports DigitalData.Modules.Logging
Public Class ConnectionBuilder
Implements IConnectionBuilder
Private ReadOnly LogConfig As LogConfig
Private SessionReconnect As Boolean = False
Private DriveLetter As String = "W"
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
Public Sub New(LogConfig As LogConfig)
Me.LogConfig = LogConfig
End Sub
'''
''' Sets flag in Windream class to reconnect on lost connection
'''
''' A IConnectionBuilder instance to allow for chaining
Public Function WithSessionReconnect() As IConnectionBuilder Implements IConnectionBuilder.WithSessionReconnect
SessionReconnect = True
Return Me
End Function
'''
''' Sets the drive letter of windream drive, default is "W"
'''
''' The drive letter to use
''' A IConnectionBuilder instance to allow for chaining
Public Function WithDriveLetter(driveLetter As String) As IConnectionBuilder Implements IConnectionBuilder.WithDriveLetter
Me.DriveLetter = driveLetter
Return Me
End Function
'''
''' Sets flag in Windream class to indicate 64-bit support
'''
''' A IConnectionBuilder instance to allow for chaining
Public Function With64BitSupport() As IConnectionBuilder Implements IConnectionBuilder.With64BitSupport
Support64Bit = True
Return Me
End Function
'''
''' Sets the servername in Windream class, overriding the client setting
'''
'''
''' A IConnectionBuilder instance to allow for chaining
Public Function WithServerName(serverName As String) As IConnectionBuilder Implements IConnectionBuilder.WithServerName
Me.ServerName = serverName
Return Me
End Function
'''
''' Sets the username, password and domain in Windream class, overriding the client settings
'''
''' The username used for the connection
''' The password used for the connection
''' The domain used for the connection
''' A IConnectionBuilder instance to allow for chaining
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
'''
''' Creates a connection.
'''
''' If there was an error while establishing the connection
''' A Windream Object
Public Function Connect() As Windream2 Implements IConnectionBuilder.Connect
Return New Windream2(LogConfig, SessionReconnect, DriveLetter, Support64Bit, ServerName, UserName, Password, Domain)
End Function
End Class