EDMIService: Turn Postprocessing Steps into list
This commit is contained in:
parent
c322beb4d7
commit
957d7a3986
@ -147,6 +147,7 @@
|
||||
<Compile Include="Methods\GlobalIndexer\ImportFile\Steps\PostProcessing.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\Loader.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\ManualIndex.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\PostProcessingStep.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\Profile.vb" />
|
||||
<Compile Include="Methods\NewFile\NewFileMethod.vb" />
|
||||
<Compile Include="Methods\NewFile\NewFileRequest.vb" />
|
||||
|
||||
@ -44,7 +44,7 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
|
||||
Dim oManualIndexes = Loader.LoadManualIndexes(pData.ProfileId)
|
||||
Dim oAutomaticIndexes = Loader.LoadAutomaticIndexes(pData.ProfileId)
|
||||
Dim oPostProcessingSteps As DataTable = Loader.LoadPostProcessingSteps(oManualIndexes)
|
||||
Dim oPostProcessingSteps = Loader.LoadPostProcessingSteps(oManualIndexes)
|
||||
Dim oProfile = Loader.LoadProfile(pData.ProfileId)
|
||||
|
||||
Dim oUserAttributes = pData.AttributeValues
|
||||
@ -126,6 +126,7 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
|
||||
Dim oDynamicPath As String = Helpers.GetPlaceholderValue(pPathConvention, pFileInfo, pUser, oUserAttributeDict, oAutoAttributeDict)
|
||||
Logger.Info("Virtual Path for file [{0}] is [{1}]", pFileInfo.Name, oDynamicPath)
|
||||
|
||||
Return oDynamicPath
|
||||
End Function
|
||||
|
||||
@ -142,6 +143,7 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
End If
|
||||
|
||||
Dim oFileName As String = Helpers.GetPlaceholderValue(pNameconvention, pFileInfo, pUser, oUserAttributeDict, oAutoAttributeDict)
|
||||
Logger.Info("Display Filename for file [{0}] is [{1}]", pFileInfo.Name, oFileName)
|
||||
|
||||
Return oFileName & pFileInfo.Extension
|
||||
End Function
|
||||
@ -160,7 +162,7 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
' Now make the call to the database
|
||||
Dim oSuccess = Helpers.SetAttributeValue(Connection, Transaction, pObjectId, oAttribute.Key, oValue, User.Language, User.UserName)
|
||||
If oSuccess Then
|
||||
Logger.Info("Attribute [{0}] written with value [{1}]", oAttribute.Key, oAttribute.Value.First())
|
||||
Logger.Info("Attribute written [{0}] => [{1}]", oAttribute.Key, oAttribute.Value.First())
|
||||
Else
|
||||
Logger.Warn("Attribute value could not be written")
|
||||
End If
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Language
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Patterns
|
||||
Imports DigitalData.Modules.ZooFlow.State
|
||||
@ -23,7 +24,7 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
Patterns = New Patterns2(pLogConfig)
|
||||
Helpers = New Helpers(pLogConfig, pDatabase)
|
||||
|
||||
Logger.Info("Starting Automatic Indexing")
|
||||
Logger.Info("Initializing Automatic Indexing")
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
@ -96,18 +97,32 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
|
||||
' Now we have a SQL command which only contains vector placeholders
|
||||
' Next, we execute the command to get our result
|
||||
Dim oValue = Database.GetScalarValueWithConnection(oFinalSQLCommand, oConnectionString)
|
||||
Dim oTable = Database.GetDatatableWithConnection(oFinalSQLCommand, oConnectionString)
|
||||
|
||||
If oValue Is Nothing Then
|
||||
If oTable Is Nothing Then
|
||||
Logger.Warn("SQL for Automatic Index [{0}] returned an error. Exiting.")
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Logger.Info("Value for Automatic Index [{0}] is [{1}]", pAutomaticIndex.Name, oValue.ToString)
|
||||
Dim oValues As New List(Of String)
|
||||
|
||||
For Each oRow As DataRow In oTable.Rows
|
||||
Try
|
||||
Dim oValue As String = oRow.ItemArray(0)?.ToString()
|
||||
If oValue IsNot Nothing AndAlso oValue.Length > 0 Then
|
||||
oValues.Add(oValue)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Error while parsing the Result from SQL Command. Skipping.")
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
Next
|
||||
|
||||
Logger.Info("Value for Automatic Index [{0}] is [{1}]", pAutomaticIndex.Name, oValues.FirstOrDefault)
|
||||
|
||||
' TODO: Return multiple values
|
||||
Return New UserAttributeValue With {
|
||||
.Values = New List(Of String) From {oValue},
|
||||
.Values = oValues,
|
||||
.Name = pAutomaticIndex.Name,
|
||||
.Id = pAutomaticIndex.Id
|
||||
}
|
||||
|
||||
@ -9,36 +9,35 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
Public Const TYPE_VBREPLACE = "VBREPLACE"
|
||||
Public Const TYPE_REGEXPRESSION = "REG. EXPRESSION"
|
||||
|
||||
Private PostprocessingSteps As DataTable
|
||||
Private PostprocessingSteps As List(Of PostProcessingStep)
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pPostProcessingSteps As DataTable)
|
||||
Public Sub New(pLogConfig As LogConfig, pPostProcessingSteps As List(Of PostProcessingStep))
|
||||
MyBase.New(pLogConfig)
|
||||
PostprocessingSteps = pPostProcessingSteps
|
||||
|
||||
Logger.Info("Starting Postprocessing of Manual Indexes")
|
||||
Logger.Info("Initializing Postprocessing of Manual Indexes")
|
||||
End Sub
|
||||
|
||||
Public Function ApplyManualPostprocessing(pManualAttributes As List(Of UserAttributeValue)) As List(Of UserAttributeValue)
|
||||
Logger.Debug("Start of Method [ApplyManualPostprocessing]")
|
||||
Dim oAttributes = pManualAttributes
|
||||
|
||||
Try
|
||||
Logger.Debug("Start of Method [ApplyManualPostprocessing]")
|
||||
|
||||
If PostprocessingSteps Is Nothing Then
|
||||
Logger.Debug("No Postprocessing steps found. Exiting.")
|
||||
Return oAttributes
|
||||
End If
|
||||
|
||||
For Each oProcessingRow As DataRow In PostprocessingSteps.Rows
|
||||
Dim oIndexId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")
|
||||
For Each oStep As PostProcessingStep In PostprocessingSteps
|
||||
Dim oIndexId = oStep.IndexId
|
||||
Dim oIndex As UserAttributeValue = pManualAttributes.
|
||||
Where(Function(attr) attr.Id = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")).
|
||||
Where(Function(attr) attr.Id = oStep.IndexId).
|
||||
FirstOrDefault()
|
||||
Dim oIndexPosition = pManualAttributes.IndexOf(oIndex)
|
||||
|
||||
Logger.Info("Postprocessing Index [{0}]", oIndex.Name)
|
||||
|
||||
Dim oValues = GetPostprocessingValue(oIndex.Values, oProcessingRow)
|
||||
Dim oValues = GetPostprocessingValue(oIndex.Values, oStep)
|
||||
|
||||
Logger.Info("New Value for Index [{0}] is [{1}]", oIndex.Name, String.Join(",", oValues))
|
||||
|
||||
@ -60,18 +59,17 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function GetPostprocessingValue(pValues As List(Of String), pRow As DataRow) As List(Of String)
|
||||
Public Function GetPostprocessingValue(pValues As List(Of String), pStep As PostProcessingStep) As List(Of String)
|
||||
Logger.Debug("Start of Method [GetPostprocessingValue]")
|
||||
|
||||
Dim oType = pRow.Item("TYPE")
|
||||
Dim oResult As New List(Of String)
|
||||
|
||||
Logger.Debug("Type of Postprocessing is [{0}]", oType)
|
||||
Logger.Debug("Type of Postprocessing is [{0}]", pStep.Type)
|
||||
|
||||
Select Case oType
|
||||
Select Case pStep.Type
|
||||
Case TYPE_VBREPLACE
|
||||
Dim oFindString = pRow.Item("TEXT1")
|
||||
Dim oReplaceString = pRow.Item("TEXT2")
|
||||
Dim oFindString = pStep.Text1
|
||||
Dim oReplaceString = pStep.Text2
|
||||
|
||||
Logger.Debug("Replacing [{0}] with [{1}]", oFindString, oReplaceString)
|
||||
|
||||
@ -87,9 +85,9 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
Next
|
||||
|
||||
Case TYPE_VBSPLIT
|
||||
Dim oSeparator As String = pRow.Item("TEXT1")
|
||||
Dim oSeparator As String = pStep.Text1
|
||||
Dim oSplitIndex As Integer = 0
|
||||
Integer.TryParse(pRow.Item("TEXT2"), oSplitIndex)
|
||||
Integer.TryParse(pStep.Text1, oSplitIndex)
|
||||
|
||||
Logger.Debug("Splitting String at Separator [{0}] and Index [{1}]", oSeparator, oSplitIndex)
|
||||
|
||||
@ -108,7 +106,7 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
Next
|
||||
|
||||
Case Else
|
||||
Logger.Warn("Postprocessing type [{0}] is not supported!", oType)
|
||||
Logger.Warn("Postprocessing type [{0}] is not supported!", pStep.Type)
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
@ -143,7 +143,7 @@ Namespace Methods.GlobalIndexer
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function LoadPostProcessingSteps(pManualIndexes As List(Of ManualIndex)) As DataTable
|
||||
Public Function LoadPostProcessingSteps(pManualIndexes As List(Of ManualIndex)) As List(Of PostProcessingStep)
|
||||
Logger.Debug("Start of Method [LoadPostProcessingSteps]")
|
||||
|
||||
Try
|
||||
@ -169,7 +169,26 @@ Namespace Methods.GlobalIndexer
|
||||
LogAndThrow(oPostProcessingSteps.ErrorMessage)
|
||||
End If
|
||||
|
||||
Return oPostProcessingSteps.Table
|
||||
Dim oSteps As New List(Of PostProcessingStep)
|
||||
|
||||
For Each oRow As DataRow In oPostProcessingSteps.Table.Rows
|
||||
Dim oStep As New PostProcessingStep With {
|
||||
.Id = oRow.ItemEx(Of Integer)("GUID"),
|
||||
.IndexId = oRow.ItemEx(Of Integer)("IDXMAN_ID"),
|
||||
.[Variant] = oRow.ItemEx(Of String)("VARIANT"),
|
||||
.Type = oRow.ItemEx(Of String)("TYPE"),
|
||||
.Function1 = oRow.ItemEx(Of String)("FUNCTION1"),
|
||||
.Function2 = oRow.ItemEx(Of String)("FUNCTION2"),
|
||||
.Text1 = oRow.ItemEx(Of String)("Text1"),
|
||||
.Text2 = oRow.ItemEx(Of String)("Text2"),
|
||||
.Text3 = oRow.ItemEx(Of String)("Text3"),
|
||||
.Sequence = oRow.ItemEx(Of Integer)("SEQUENCE")
|
||||
}
|
||||
|
||||
oSteps.Add(oStep)
|
||||
Next
|
||||
|
||||
Return oSteps
|
||||
Catch ex As Exception
|
||||
LogAndThrow(ex, "Error while loading post processing steps!")
|
||||
Return Nothing
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
Namespace Methods.GlobalIndexer
|
||||
Public Class PostProcessingStep
|
||||
Public Id As Integer
|
||||
Public IndexId As Integer
|
||||
Public [Variant] As String
|
||||
|
||||
Public Type As String
|
||||
Public Function1 As String
|
||||
Public Function2 As String
|
||||
Public Text1 As String
|
||||
Public Text2 As String
|
||||
Public Text3 As String
|
||||
|
||||
Public Sequence As Integer
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user