Patterns: Add Controls and Windream Modules

This commit is contained in:
Jonathan Jenne
2021-11-04 14:19:21 +01:00
parent e5f7fcd05a
commit bd176e3de0
5 changed files with 222 additions and 61 deletions

View File

@@ -91,29 +91,113 @@ Public Class Patterns2
Return oResult
End Function
Private Function GetReplaceMapForModule(pModule As IModule, pPanel As Panel, pUser As State.UserState) As Dictionary(Of String, Object)
Public Function ReplaceUserValues(pInput As String, pUser As State.UserState) As String
Dim oResult = pInput
Dim oModule = GetModule(Of PatternModule.User)()
Dim oArgs = GetReplaceMapForModule(oModule, pUser:=pUser)
oResult = DoReplaceForModule(oResult, oModule, oArgs)
Return oResult
End Function
Public Function ReplaceControlValues(pInput As String, pPanel As Panel) As String
Dim oResult = pInput
Dim oModule = GetModule(Of PatternModule.Controls)()
Dim oArgs = GetReplaceMapForModule(oModule, pPanel:=pPanel)
oResult = DoReplaceForModule(oResult, oModule, oArgs)
Return oResult
End Function
Public Function ReplaceWindreamValues(pInput As String, pWMObject As WMObject) As String
Dim oResult = pInput
Dim oModule = GetModule(Of PatternModule.Windream)()
Dim oArgs = GetReplaceMapForModule(oModule, pWMObject:=pWMObject)
oResult = DoReplaceForModule(oResult, oModule, oArgs)
Return oResult
End Function
Public Function ReplaceInternalValues(pInput As String) As String
Dim oResult = pInput
Dim oInternalModule = GetModule(Of PatternModule.Internal)()
Dim oInternalArgs = GetReplaceMapForModule(oInternalModule)
oResult = DoReplaceForModule(oResult, oInternalModule, oInternalArgs)
Dim oClipboardModule = GetModule(Of PatternModule.Clipboard)()
Dim oClipboardArgs = GetReplaceMapForModule(oClipboardModule)
oResult = DoReplaceForModule(oResult, oClipboardModule, oClipboardArgs)
Return oResult
End Function
Private Function DoReplaceForModule(pInput As String, pModule As IModule, pArgs As Dictionary(Of String, Object)) As String
Try
pInput = pModule.Replace(pInput, pArgs)
Catch ex As Exception
Logger.Warn("Placeholders for String [{0}] could not be replaced completely in Module [{1}]. Skipping.", pInput, pModule.GetType.Name)
Logger.Error(ex)
End Try
Return pInput
End Function
Private Function GetModule(Of ModuleT)() As IModule
Return Modules.
Where(Function(m) TypeOf m Is ModuleT).
SingleOrDefault()
End Function
Private Function GetReplaceMapForModule(pModule As IModule, Optional pPanel As Panel = Nothing, Optional pUser As State.UserState = Nothing, Optional pWMObject As WMObject = Nothing) As Dictionary(Of String, Object)
Dim oArgs As New Dictionary(Of String, Object)
If TypeOf pModule Is PatternModule.Clipboard Then
oArgs.Add(PatternModule.Clipboard.CLIP_VALUE_BOARD, My.Computer.Clipboard.GetText())
Try
oArgs.Add(PatternModule.Clipboard.CLIP_VALUE_BOARD, My.Computer.Clipboard.GetText())
Catch ex As Exception
Logger.Error(ex)
End Try
ElseIf TypeOf pModule Is PatternModule.Internal Then
oArgs.Add(PatternModule.Internal.INT_VALUE_USERNAME, System.Environment.UserName)
oArgs.Add(PatternModule.Internal.INT_VALUE_MACHINE, System.Environment.MachineName)
oArgs.Add(PatternModule.Internal.INT_VALUE_DOMAIN, System.Environment.UserDomainName)
oArgs.Add(PatternModule.Internal.INT_VALUE_DATE, Now.ToShortDateString)
Try
oArgs.Add(PatternModule.Internal.INT_VALUE_USERNAME, System.Environment.UserName)
oArgs.Add(PatternModule.Internal.INT_VALUE_MACHINE, System.Environment.MachineName)
oArgs.Add(PatternModule.Internal.INT_VALUE_DOMAIN, System.Environment.UserDomainName)
oArgs.Add(PatternModule.Internal.INT_VALUE_DATE, Now.ToShortDateString)
Catch ex As Exception
Logger.Error(ex)
End Try
ElseIf TypeOf pModule Is PatternModule.User Then
oArgs.Add(PatternModule.User.USER_VALUE_EMAIL, pUser.Email)
oArgs.Add(PatternModule.User.USER_VALUE_LANGUAGE, pUser.Language)
oArgs.Add(PatternModule.User.USER_VALUE_PRENAME, pUser.GivenName)
oArgs.Add(PatternModule.User.USER_VALUE_SHORTNAME, pUser.ShortName)
oArgs.Add(PatternModule.User.USER_VALUE_SURNAME, pUser.Surname)
oArgs.Add(PatternModule.User.USER_VALUE_USER_ID, pUser.UserId)
oArgs.Add(PatternModule.User.USER_VALUE_USER_NAME, pUser.UserName)
Try
oArgs.Add(PatternModule.User.USER_VALUE_EMAIL, pUser.Email)
oArgs.Add(PatternModule.User.USER_VALUE_LANGUAGE, pUser.Language)
oArgs.Add(PatternModule.User.USER_VALUE_PRENAME, pUser.GivenName)
oArgs.Add(PatternModule.User.USER_VALUE_SHORTNAME, pUser.ShortName)
oArgs.Add(PatternModule.User.USER_VALUE_SURNAME, pUser.Surname)
oArgs.Add(PatternModule.User.USER_VALUE_USER_ID, pUser.UserId)
oArgs.Add(PatternModule.User.USER_VALUE_USER_NAME, pUser.UserName)
Catch ex As Exception
Logger.Error(ex)
End Try
ElseIf TypeOf pModule Is PatternModule.Controls Then
oArgs.Add(PatternModule.Controls.CTRL_VALUE_PANEL, pPanel)
Try
oArgs.Add(PatternModule.Controls.CTRL_VALUE_PANEL, pPanel)
Catch ex As Exception
Logger.Error(ex)
End Try
ElseIf TypeOf pModule Is PatternModule.Windream Then
Try
oArgs.Add(PatternModule.Windream.WM_VALUE_DOCUMENT, pWMObject)
Catch ex As Exception
Logger.Error(ex)
End Try
End If