diff --git a/Patterns/Modules/Custom.vb b/Patterns/Modules/Custom.vb new file mode 100644 index 00000000..04c22ded --- /dev/null +++ b/Patterns/Modules/Custom.vb @@ -0,0 +1,37 @@ +Imports DigitalData.Modules.Logging + +Namespace Modules + ''' + ''' Custom Patterns that are defined at runtime + ''' + Public Class Custom + Inherits BaseModule + Implements IModule + + Public Property PatternIdentifier As String = "CUST" Implements IModule.PatternIdentifier + Public Property IsComplex As Boolean = False Implements IModule.IsComplex + + Public Sub New(pLogConfig As LogConfig) + MyBase.New(pLogConfig) + End Sub + + Public Function Replace(pInput As String, pCustomValues As Dictionary(Of String, String)) As String + Dim oResult = pInput + Dim oCounter = 0 + Dim oNow As Date = Now + + Logger.Trace("Replacing Custom Patterns") + + While HasPattern(oResult, PatternIdentifier) + For Each oCustomValue In pCustomValues + If ContainsPatternAndValue(oResult, PatternIdentifier, oCustomValue.Key) Then + oResult = ReplacePattern(oResult, PatternIdentifier, oCustomValue.Value) + End If + Next + IncrementCounterOrThrow(oCounter) + End While + + Return oResult + End Function + End Class +End Namespace diff --git a/Patterns/Patterns.vbproj b/Patterns/Patterns.vbproj index 6842b7b0..b6ae95ff 100644 --- a/Patterns/Patterns.vbproj +++ b/Patterns/Patterns.vbproj @@ -91,6 +91,7 @@ + diff --git a/Patterns/Patterns2.vb b/Patterns/Patterns2.vb index c94d45c8..5c388a11 100644 --- a/Patterns/Patterns2.vb +++ b/Patterns/Patterns2.vb @@ -139,6 +139,23 @@ Public Class Patterns2 End Try End Function + Public Function ReplaceCustomValues(pInput As String, pCustomValues As Dictionary(Of String, String)) As String + Logger.Debug("Replacing Custom Values") + + Dim oResult = pInput + + Try + Dim oCustom = New Modules.Custom(LogConfig) + oResult = oCustom.Replace(oResult, pCustomValues) + + Return oResult + Catch ex As Exception + Logger.Warn("Error occurred while replacing Globix Values") + Logger.Error(ex) + Return oResult + End Try + End Function + #Region "Helper Functions" ''' ''' Wraps a pattern-type and -value in the common format: {#type#value}