Imports DigitalData.Modules.Logging Public Class frmUserManager Private _Logger As Logger Private _CommonCommands As ClassCommonCommands Public Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. _Logger = My.LogConfig.GetLogger() _CommonCommands = New ClassCommonCommands(My.LogConfig) End Sub Private Async Sub frmUserManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load Await InitUserToGroupData() AddHandler UCUserToGroup.ChildRemoved, AddressOf HandleUserAssignedToGroup AddHandler UCUserToGroup.ChildAdded, AddressOf HandleUserDismissedFromGroup RibbonControl.SelectPage(RibbonPageUserManager) End Sub Private Sub frmUserManager_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged If Visible Then RibbonControl.SelectPage(RibbonPageUserManager) End If End Sub Private Async Function InitUserToGroupData() As Task Dim oUserTable = Await GetAttributeListAsync("User") Dim oGroupTable = Await GetAttributeListAsync("Group") Dim oUserGroupTable = Await GetAttributeListAsync("User2Group") UCUserToGroup.Init(oGroupTable, oUserTable, oUserGroupTable, "GROUP_ID", "USER_ID") End Function Private Async Function UpdateUserToGroupData() As Task Dim oUserTable = Await GetAttributeListAsync("User") Dim oGroupTable = Await GetAttributeListAsync("Group") Dim oUserGroupTable = Await GetAttributeListAsync("User2Group") UCUserToGroup.UpdateData(oGroupTable, oUserTable, oUserGroupTable) End Function Private Async Sub HandleUserAssignedToGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer) Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_USER2GROUP(GroupId, UserId) Await UpdateUserToGroupData() End Sub Private Async Sub HandleUserDismissedFromGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer) Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId) Await UpdateUserToGroupData() End Sub Private Async Function GetAttributeListAsync(AttributeName As String) As Task(Of DataTable) Try Dim oSQL = $"SELECT * FROM VWICM_{AttributeName.ToUpper}" Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"List Attribute {AttributeName}", False) Dim oResult = Await My.Channel.ReturnDatatableAsync(oSQL) Await My.Channel.CloseDatabaseRequestAsync() Return oResult.Table Catch ex As Exception _Logger.Error(ex) Throw ex End Try End Function Private Async Sub BarButtonUserEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserEdit.ItemClick Dim oDatatable = Await GetAttributeListAsync("User") Dim oForm As New frmEdit(ClassConstants.DB_USER_ATTRIBUTE_ID, oDatatable) 'oForm.MdiParent = o oForm.Show() End Sub Private Async Sub BarButtonGroupEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonGroupEdit.ItemClick Dim oDatatable = Await GetAttributeListAsync("Group") Dim oForm As New frmEdit(ClassConstants.DB_GROUP_ATTRIBUTE_ID, oDatatable) oForm.Show() End Sub Private Async Sub BarButtonRefresh_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonRefresh.ItemClick Await UpdateUserToGroupData() End Sub Private Sub OfficeNavigationBar1_SelectedItemChanged(sender As Object, e As DevExpress.XtraBars.Navigation.NavigationBarItemEventArgs) Handles OfficeNavigationBar1.SelectedItemChanged Select Case OfficeNavigationBar1.SelectedItem.Name Case "NavbarUser2Group" UCUserToGroup.Visible = True UCUserToGroup.Dock = DockStyle.Fill UCGroupToGroup.Visible = False UCGroupToGroup.Dock = DockStyle.None Case "NavbarGroup2Group" UCGroupToGroup.Visible = True UCGroupToGroup.Dock = DockStyle.Fill UCUserToGroup.Visible = False UCUserToGroup.Dock = DockStyle.None End Select End Sub End Class