Rework Profiles, Add Validation, Add Placeholders, Add Controls

This commit is contained in:
Jonathan Jenne
2022-06-29 14:36:12 +02:00
parent ad289ae666
commit 9b7c1d0e0a
6 changed files with 294 additions and 58 deletions

View File

@@ -10,6 +10,27 @@ Public Class SearchLoader
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)
@@ -23,11 +44,18 @@ Public Class SearchLoader
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 = CInt(oRow.Item("GUID")),
.Title = oRow.ItemEx("TITLE", ""),
.Description = oRow.ItemEx("DESCRIPTION", ""),
.TypeName = "Varchar"
.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
@@ -37,42 +65,98 @@ Public Class SearchLoader
End Try
End Sub
Public Function LoadSearchAttributes(pSearchId As Integer) As List(Of SearchAttribute)
Dim oSQL As String = $"SELECT * FROM TBDD_MONITORING_PROFILE_ATTRIBUTES WHERE ACTIVE = 1 AND MONITOR_PROFILE_ID = {pSearchId} ORDER BY SEQUENCE"
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 oAttributes As New List(Of SearchAttribute)
Dim oParameters As New List(Of SearchParameter)
For Each oRow As DataRow In oTable.Rows
oAttributes.Add(New SearchAttribute With {
oParameters.Add(New SearchParameter With {
.Id = oRow.ItemEx("GUID", 0),
.Caption = oRow.ItemEx("CAPTION", String.Empty),
.Title = oRow.ItemEx("CAPTION", String.Empty),
.Description = oRow.ItemEx("DESCRIPTION", String.Empty),
.DataType = oRow.ItemEx("DATA_TYPE", "VARCHAR")
.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
Return oAttributes
End Function
Parameters = oParameters
End Sub
Public Class Search
Public Id As Integer
Public Title As String
Public Description As String
Public TypeName 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 SearchAttribute
Public Class SearchParameter
Public Id As Integer
Public Caption As String
Public Title As String
Public PatternTitle As String
Public Description As String
Public DataType 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 Caption
Return Title
End Function
End Class