109 lines
4.4 KiB
VB.net

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