56 lines
2.1 KiB
VB.net
56 lines
2.1 KiB
VB.net
Imports DigitalData.Modules.Logging
|
|
|
|
Namespace Modules
|
|
''' <summary>
|
|
''' Patterns for Generating a Filename in Global Indexer
|
|
''' </summary>
|
|
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
|