2019-02-22 16:31:50 +01:00

128 lines
5.3 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 InitData()
AddHandler UCUserToGroup.ChildAdded, AddressOf HandleUserAddedToGroup
AddHandler UCUserToGroup.ChildRemoved, AddressOf HandleUserRemovedFromGroup
AddHandler UCGroupToGroup.ChildAdded, AddressOf HandleGroupAddedToGroup
AddHandler UCGroupToGroup.ChildRemoved, AddressOf HandleGroupRemovedFromGroup
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 InitData() As Task
Dim oUserTable = Await GetAttributeListAsync("User")
Dim oGroupTable = Await GetAttributeListAsync("Group")
Dim oUserGroupTable = Await GetAttributeListAsync("User2Group")
Dim oGroupGroupTable = Await GetAttributeListAsync("Group2Group")
UCUserToGroup.Init(oGroupTable, oUserTable, oUserGroupTable, "GROUP_ID", "USER_ID")
UCGroupToGroup.Init(oGroupTable, oGroupTable, oGroupGroupTable, "GROUP2_ID", "GROUP1_ID")
End Function
Private Async Function UpdateData() As Task
Dim oUserTable = Await GetAttributeListAsync("User")
Dim oGroupTable = Await GetAttributeListAsync("Group")
Dim oUserGroupTable = Await GetAttributeListAsync("User2Group")
Dim oGroupGroupTable = Await GetAttributeListAsync("Group2Group")
UCUserToGroup.UpdateData(oGroupTable, oUserTable, oUserGroupTable)
UCGroupToGroup.UpdateData(oGroupTable, oGroupTable, oGroupGroupTable)
End Function
Private Async Sub HandleUserAddedToGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer)
Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_USER2GROUP(UserId, GroupId)
Await UpdateData()
End Sub
Private Async Sub HandleUserRemovedFromGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer)
Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
Await UpdateData()
End Sub
Private Async Sub HandleGroupAddedToGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer)
Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_GROUP2GROUP(GroupId, ParentGroupId)
Await UpdateData()
End Sub
Private Async Sub HandleGroupRemovedFromGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer)
Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
Await UpdateData()
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 UpdateData()
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