Add new nodes

This commit is contained in:
Jonathan Jenne
2023-09-21 15:09:28 +02:00
parent 16b2026a24
commit 1cf5c979db
15 changed files with 733 additions and 227 deletions

View File

@@ -6,6 +6,9 @@ Public Class ClassNodeNavigation
Public Shared Datatable_Nodes As DataTable
Public Shared TREEVIEW_IMAGELIST As ImageList
Public Shared IMAGE_COLLECTION As ImageCollection
Public Shared Function CreateNodeProcedure(RECORD_ID As Integer, NODE_CONFIG_ID As Integer, NODE_CAPTION As String, NODE_ID1 As String, NODE_PARENT_ID As String, ADDED_WHO As String)
Try
Dim connection As New SqlConnection
@@ -38,56 +41,56 @@ Public Class ClassNodeNavigation
End Function
Public Shared Function CREATE_IMAGE_COLL(DT_IMAGELIST As DataTable)
IMAGE_COLLECTION = New ImageCollection
For Each row As DataRow In DT_IMAGELIST.Rows
Try
Dim bimage = row.Item("NODE_IMAGE")
If Not IsDBNull(bimage) Then
Dim Node_image = ByteArrayToBitmap(bimage)
IMAGE_COLLECTION.AddImage(Node_image, row.Item("GUID")) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
'Public Shared Function CREATE_IMAGE_COLL(DT_IMAGELIST As DataTable)
' IMAGE_COLLECTION = New ImageCollection
' For Each row As DataRow In DT_IMAGELIST.Rows
' Try
' Dim bimage = row.Item("NODE_IMAGE")
' If Not IsDBNull(bimage) Then
' Dim Node_image = ByteArrayToBitmap(bimage)
' IMAGE_COLLECTION.AddImage(Node_image, row.Item("GUID")) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
End If
Catch ex As Exception
' End If
' Catch ex As Exception
End Try
' End Try
Next
End Function
' Next
'End Function
Public Shared Function Return_Node(PARENT_ID As Integer, ParentNode As TreeNode)
Dim expression As String
expression = "PARENT_GUID = " & PARENT_ID 'Einschränkung auf Type und Parent_Guid
Dim foundRows() As DataRow
foundRows = Datatable_Nodes.Select(expression)
Dim q As Integer
For q = 0 To foundRows.GetUpperBound(0)
Dim ID9 = foundRows(q)("GUID")
Dim LevelEntity9 = foundRows(q)("ENTITY_ID")
Dim controlID9 = foundRows(q)("CONTROL_ID")
Dim nodetext9 = foundRows(q)("NODE_CAPTION")
Dim RECORD_ID = foundRows(q)("RECORD_ID")
Dim NODE_CONFIG_ID = foundRows(q)("NODE_CONFIG_ID")
' Node erstellen..
Dim NEW_NODE As TreeNode
NEW_NODE = New TreeNode(nodetext9)
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9, NEW_NODE)
NEW_NODE.Tag = ClassNodeNavigation.CreateNODE_TAG(LevelEntity9, ID9, RECORD_ID, NODE_CONFIG_ID)
'Public Shared Function Return_Node(PARENT_ID As Integer, ParentNode As TreeNode)
' Dim expression As String
' expression = "PARENT_GUID = " & PARENT_ID 'Einschränkung auf Type und Parent_Guid
' Dim foundRows() As DataRow
' foundRows = Datatable_Nodes.Select(expression)
' Dim q As Integer
' For q = 0 To foundRows.GetUpperBound(0)
' Dim ID9 = foundRows(q)("GUID")
' Dim LevelEntity9 = foundRows(q)("ENTITY_ID")
' Dim controlID9 = foundRows(q)("CONTROL_ID")
' Dim nodetext9 = foundRows(q)("NODE_CAPTION")
' Dim RECORD_ID = foundRows(q)("RECORD_ID")
' Dim NODE_CONFIG_ID = foundRows(q)("NODE_CONFIG_ID")
' ' Node erstellen..
' Dim NEW_NODE As TreeNode
' NEW_NODE = New TreeNode(nodetext9)
' ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9, NEW_NODE)
' NEW_NODE.Tag = ClassNodeNavigation.CreateNODE_TAG(LevelEntity9, ID9, RECORD_ID, NODE_CONFIG_ID)
Dim index = 0
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity9.ToString Then
Exit For
End If
index += 1
Next
NEW_NODE.ImageIndex = index
NEW_NODE.SelectedImageIndex = index
' ..und einfügen
ParentNode.Nodes.Add(NEW_NODE)
Next '
End Function
' Dim index = 0
' For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
' If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity9.ToString Then
' Exit For
' End If
' index += 1
' Next
' NEW_NODE.ImageIndex = index
' NEW_NODE.SelectedImageIndex = index
' ' ..und einfügen
' ParentNode.Nodes.Add(NEW_NODE)
' Next '
'End Function
Public Shared Sub Check_NODE_CONFIG_ID(ENTITY_ID As Integer, myTreeNode As TreeNode)
Try
If myTreeNode Is Nothing Then

View File

@@ -0,0 +1,39 @@
Imports DevExpress.Utils
Imports DevExpress.XtraTreeList.Nodes
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Public Class ClassNodeCreator
Inherits BaseClass
Private ReadOnly _ImageList As ImageCollection
Public Sub New(pLogConfig As LogConfig, pImageList As ImageCollection)
MyBase.New(pLogConfig)
_ImageList = pImageList
End Sub
Public Function AddNode(pEntityId As Integer, pNodeCaption As String, pParentNodeId As Integer, pNodeConfigId As Integer) As Boolean
' Create a new Record in the given Entity
Dim oRecordId = ClassRecordCommands.CreateRecordProcedure(pEntityId)
If oRecordId = 0 Then
Logger.Warn("Could not create a record. Exiting.")
Return False
End If
' Update the proxy?
ClassProxy.PRPROXY_RECORD_UPD_INS(pEntityId, oRecordId)
' Create the Node in the Database
Dim oNodeIdentifier = $"CONFIG {oRecordId}-{pNodeConfigId}"
Dim oNodeId = ClassNodeNavigation.CreateNodeProcedure(oRecordId, pNodeConfigId, pNodeCaption, oNodeIdentifier, pParentNodeId, USER_USERNAME)
If oNodeId = 0 Then
Logger.Warn("Node could not be created in database. Exiting.")
Return False
End If
Return True
End Function
End Class

View File

@@ -0,0 +1,34 @@
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Public Class ClassNodeLoader
Inherits BaseClass
Private ReadOnly Database As MSSQLServer
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer)
MyBase.New(pLogConfig)
Database = pDatabase
End Sub
Public Async Function LoadNodes(pEntityId As Integer) As Task(Of DataTable)
Dim oStructureNodeSql = $"SELECT
T.GUID,
T.RECORD_ID,
T.NODE_CONFIG_ID,
T.NODE_CAPTION,
T.ID1,
T.BACK_COLOR,
T.PARENT_GUID,
T.SEQUENCE,
T.TYPE_NODE
FROM
VWPMO_STRUCTURE_NODES T
INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID
WHERE T.ENTITY_ID = {pEntityId}"
Dim oTable = Await Database.GetDatatableAsync(oStructureNodeSql)
Return oTable
End Function
End Class