Imports DigitalData.Modules.Logging Namespace Modules ''' ''' Patterns for Generating a Filename in Global Indexer ''' Public Class Globix Inherits BaseModule Implements IModule Public Const GBX_VALUE_INDICIES = "GLOBIX_INDICIES" Public Property PatternIdentifier As String = "GBX" Implements IModule.PatternIdentifier Public Property IsComplex As Boolean = True Implements IModule.IsComplex Public Sub New(pLogConfig As LogConfig) MyBase.New(pLogConfig) End Sub Public Function Replace(pInput As String, pReplaceMap As Dictionary(Of String, Object)) As String Implements IModule.Replace Dim oResult = pInput Dim oCounter = 0 Dim pIndexes As Dictionary(Of String, List(Of String)) = pReplaceMap.Item(GBX_VALUE_INDICIES) While ContainsPattern(oResult, PatternIdentifier) Try Dim oIndexName As String = GetNextPattern(oResult, PatternIdentifier).Value If pIndexes.ContainsKey(oIndexName) = False Then Logger.Warn("Value for Index [{0}] does not exist and will not be used for replacing. Skipping.", oIndexName) End If ' TODO: If Index contains multiple values, only the first value will be used as value Dim oIndexValues As List(Of String) = pIndexes.Item(oIndexName) Dim oFirstValue As String = oIndexValues.FirstOrDefault() If oFirstValue Is Nothing Then Logger.Warn("Value for Index [{0}] is empty and will not be used for replacing. Skipping.") Return oResult End If oResult = ReplacePattern(oResult, PatternIdentifier, oFirstValue) Catch ex As Exception Logger.Error(ex) Return oResult Finally IncrementCounterOrThrow(oCounter) End Try End While Return oResult End Function End Class End Namespace