164 lines
4.9 KiB
VB.net
164 lines
4.9 KiB
VB.net
Imports DigitalData.Modules.Base
|
|
Imports DigitalData.Modules.Database
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.Language
|
|
|
|
Public Class SearchLoader
|
|
Inherits BaseClass
|
|
|
|
Private Config As Config
|
|
Private Database As MSSQLServer
|
|
|
|
Public Searches As New List(Of Search)
|
|
Public Parameters As New List(Of SearchParameter)
|
|
|
|
Public Enum ReturnTypeEnum
|
|
Undefined
|
|
Table
|
|
TreeView
|
|
End Enum
|
|
|
|
Public Enum DataTypeEnum
|
|
Undefined
|
|
[Boolean]
|
|
[String]
|
|
[Integer]
|
|
[Date]
|
|
End Enum
|
|
|
|
Public Enum ItemTypeEnum
|
|
Undefined
|
|
List
|
|
SQL
|
|
End Enum
|
|
|
|
Public Sub New(pLogConfig As LogConfig, pConfig As Config, pDatabase As MSSQLServer)
|
|
MyBase.New(pLogConfig)
|
|
Config = pConfig
|
|
Database = pDatabase
|
|
End Sub
|
|
|
|
Public Sub LoadSearches()
|
|
Try
|
|
Dim oSQL = Config.SearchSQL
|
|
Dim oTable = Database.GetDatatable(oSQL)
|
|
|
|
For Each oRow As DataRow In oTable.Rows
|
|
Dim oSearchId = oRow.ItemEx("GUID", 0)
|
|
Dim oParams = Parameters.
|
|
Where(Function(param) param.SearchId = oSearchId).
|
|
ToList()
|
|
|
|
Searches.Add(New Search With {
|
|
.Id = oSearchId,
|
|
.Title = oRow.ItemEx("TITLE", String.Empty),
|
|
.Description = oRow.ItemEx("CAPTION", String.Empty),
|
|
.ReturnType = GetReturnType(oRow.ItemEx("RETURN_TYPE", String.Empty)),
|
|
.SQLCommand = oRow.ItemEx("EXEC_SQL", String.Empty),
|
|
.Parameters = oParams
|
|
})
|
|
Next
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Throw ex
|
|
|
|
End Try
|
|
End Sub
|
|
|
|
Public Function GetItemType(pTypeString As String) As ItemTypeEnum
|
|
Select Case pTypeString
|
|
Case "LIST"
|
|
Return ItemTypeEnum.List
|
|
Case "SQL"
|
|
Return ItemTypeEnum.SQL
|
|
Case Else
|
|
Return ItemTypeEnum.Undefined
|
|
End Select
|
|
End Function
|
|
|
|
Public Function GetReturnType(pTypeString As String) As ReturnTypeEnum
|
|
Select Case pTypeString
|
|
Case "Table"
|
|
Return ReturnTypeEnum.Table
|
|
Case "TreeView"
|
|
Return ReturnTypeEnum.TreeView
|
|
Case Else
|
|
Return ReturnTypeEnum.Undefined
|
|
End Select
|
|
End Function
|
|
|
|
Public Function GetDataType(pTypeString As String) As DataTypeEnum
|
|
Select Case pTypeString
|
|
Case "BIT"
|
|
Return DataTypeEnum.Boolean
|
|
Case "VARCHAR"
|
|
Return DataTypeEnum.String
|
|
Case "INT"
|
|
Return DataTypeEnum.Integer
|
|
Case "DATE"
|
|
Return DataTypeEnum.Date
|
|
Case Else
|
|
Return DataTypeEnum.Undefined
|
|
End Select
|
|
End Function
|
|
|
|
Public Sub LoadSearchParameters()
|
|
Dim oSQL As String = $"SELECT * FROM TBMON_PROFILE_PARAM WHERE ACTIVE = 1 ORDER BY SEQUENCE"
|
|
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
|
Dim oParameters As New List(Of SearchParameter)
|
|
|
|
For Each oRow As DataRow In oTable.Rows
|
|
oParameters.Add(New SearchParameter With {
|
|
.Id = oRow.ItemEx("GUID", 0),
|
|
.Title = oRow.ItemEx("CAPTION", String.Empty),
|
|
.Description = oRow.ItemEx("DESCRIPTION", String.Empty),
|
|
.DataType = GetDataType(oRow.ItemEx("DATA_TYPE", "VARCHAR")),
|
|
.ItemString = oRow.ItemEx("ITEMS", String.Empty),
|
|
.ItemType = GetItemType(oRow.ItemEx("ITEM_TYPE", String.Empty)),
|
|
.Required = oRow.ItemEx("REQUIRED", True),
|
|
.PatternTitle = oRow.ItemEx("PATTERN", String.Empty),
|
|
.SearchId = oRow.ItemEx("PROFILE_ID", 0)
|
|
})
|
|
Next
|
|
|
|
Parameters = oParameters
|
|
End Sub
|
|
|
|
Public Class Search
|
|
Public Id As Integer
|
|
Public Title As String
|
|
Public Description As String
|
|
Public SQLCommand As String
|
|
Public ReturnType As ReturnTypeEnum
|
|
|
|
Public Parameters As List(Of SearchParameter)
|
|
|
|
Public Overrides Function ToString() As String
|
|
Return Title
|
|
End Function
|
|
End Class
|
|
|
|
Public Class SearchParameter
|
|
Public Id As Integer
|
|
Public Title As String
|
|
Public PatternTitle As String
|
|
Public Description As String
|
|
Public DataType As DataTypeEnum
|
|
Public ItemString As String
|
|
Public ItemType As ItemTypeEnum
|
|
Public Required As Boolean
|
|
Public SearchId As Integer
|
|
|
|
Public ReadOnly Property HasItems As Boolean
|
|
Get
|
|
Return ItemType <> ItemTypeEnum.Undefined
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides Function ToString() As String
|
|
Return Title
|
|
End Function
|
|
End Class
|
|
|
|
End Class
|