2017-01-04 17:09:26 +01:00

160 lines
7.2 KiB
VB.net

Imports DD_Rights
Imports System.ComponentModel
Public Class frmUsersReworkRights
Private _error As Boolean = False
Private Sub frmCheckRightsEntity_Load(sender As Object, e As EventArgs) Handles Me.Load
'lblstate.Visible = False
Refresh_Users()
End Sub
Sub Refresh_Users()
Try
Dim Sql = String.Format("SELECT * FROM TBDD_USER WHERE MODULE_RECORD_ORG = 1 ORDER By USERNAME")
Dim DT_USER = ClassDatabase.Return_Datatable(Sql)
Try
MyDataset.TBAD_Users.Clear()
For Each row As DataRow In DT_USER.Rows
Dim newUserRow As MyDataset.TBAD_UsersRow
newUserRow = MyDataset.TBAD_Users.NewTBAD_UsersRow
newUserRow.Username = row.Item("USERNAME")
newUserRow.Surname = row.Item("NAME")
newUserRow.Prename = row.Item("PRENAME")
Try
newUserRow.Email = row.Item("EMAIL")
Catch ex As Exception
newUserRow.Email = ""
End Try
newUserRow.ID = row.Item("GUID")
MyDataset.TBAD_Users.Rows.Add(newUserRow)
' chklbxUserForGroup.Items.Add(New MyListBoxItem() With {.Text = row.Item(1), .ExtraData = row.Item(0)})
Next
Catch ex As Exception
MsgBox("Error Load_Users for menues:" & vbNewLine & ex.Message)
End Try
Catch ex As Exception
MsgBox("Unexpected error in load Users List: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub btnCheckRights_Click(sender As Object, e As EventArgs) Handles btnCheckRights.Click
Dim Count As Integer
For Each row As DataRow In MyDataset.TBAD_Users.Rows
If row.Item(0) = CBool(True) Then
Count += 1
End If
Next
If Count > 0 Then
Try
Me.Cursor = Cursors.WaitCursor
''BackgroundWorker erstellen ...
BW_RightsEntity = New BackgroundWorker
BW_RightsEntity.WorkerReportsProgress = True
'ProgressBar1.Maximum = Count + 1
'lblstate.Visible = True
'lblstate.Text = "Background Worker started...."
ProgressPanel1.Description = "Preparing Right-Collector...."
' Me.ProgressBar1.Visible = True
ProgressPanel1.Visible = True
btnCheckRights.Enabled = False
btncancel.Visible = True
System.Threading.Thread.Sleep(500)
Application.DoEvents()
DO_Work()
BW_RightsEntity_RunWorkerCompleted()
'AddHandler BW_RightsEntity.DoWork, AddressOf bw_DoWork
'BW_RightsEntity.ReportProgress(1)
'.. und starten
'BW_RightsEntity.RunWorkerAsync()
Catch ex As Exception
MsgBox("Unexpected error in starting backgroundworker: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
'Me.ProgressBar1.Visible = False
End Try
End If
Me.Cursor = Cursors.Default
End Sub
Private Sub BW_RightsEntity_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BW_RightsEntity.ProgressChanged
'Me.ProgressBar1.Value = e.ProgressPercentage
ProgressPanel1.Description = "Collecting rights for user...."
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
_error = False
Dim i As Integer = 1
For Each row As DataRow In MyDataset.TBAD_Users.Rows
If row.Item(0) = CBool(True) Then
' ProgressPanel1.Description = "Collecting rights for user: " & row.Item("USERNAME")
Dim sql = String.Format("DECLARE @return_value int " & vbNewLine & _
"EXEC @return_value = [dbo].[PRPMO_RIGHTS_SERVICE_CHECK_USER] @USER_ID = {0}, @pCHECK_WHO = {1} " & vbNewLine & _
"SELECT 'Return Value' = @return_value", row.Item(5), Environment.UserName)
Me.Cursor = Cursors.WaitCursor
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
If Not IsNothing(DT) Then
Dim result = DT.Rows(0).Item(0)
If result <> 0 Then
MsgBox("Unexpected Error in Executing rightprocedure - Check the log!", MsgBoxStyle.Critical)
_error = True
BW_RightsEntity.ReportProgress(+1)
Exit For
Else
Dim del = String.Format("DELETE FROM TBPMO_USER_RIGHTS_JOBS WHERE USER_ID = {0}", row.Item(5))
ClassDatabase.Execute_non_Query(del)
End If
End If
End If
BW_RightsEntity.ReportProgress(+1)
Next
End Sub
Sub DO_Work()
For Each row As DataRow In MyDataset.TBAD_Users.Rows
If row.Item(0) = CBool(True) Then
ProgressPanel1.Description = "Collecting rights for user...." & row.Item("USERNAME")
Application.DoEvents()
' ProgressPanel1.Description = "Collecting rights for user: " & row.Item("USERNAME")
Dim proc = String.Format("EXEC PRPMO_RIGHTS_SERVICE_CHECK_USER {0}, '{1}'", row.Item(5), Environment.UserName)
If ClassDatabase.Execute_non_Query(proc, False, 240) = False Then
MsgBox("Unexpected Error in Executing rightprocedure - Check the log!", MsgBoxStyle.Critical)
_error = True
Exit For
Else
Dim del = String.Format("DELETE FROM TBPMO_USER_RIGHTS_JOBS WHERE USER_ID = {0}", row.Item(5))
ClassDatabase.Execute_non_Query(del)
End If
End If
Next
End Sub
Private Sub btncancel_Click(sender As Object, e As EventArgs) Handles btncancel.Click
' Cancel the asynchronous operation.
Me.BW_RightsEntity.CancelAsync()
End Sub
Private Sub BW_RightsEntity_RunWorkerCompleted() '(sender As Object, e As RunWorkerCompletedEventArgs) 'Handles BW_RightsEntity.RunWorkerCompleted
Try
btncancel.Visible = False
'ProgressBar1.Visible = False
'lblstate.Visible = False
btnCheckRights.Enabled = True
btncancel.Visible = False
ProgressPanel1.Visible = False
If _error = False Then
MsgBox("All rights of files belonging to User were checked and transmitted to the server!" & vbNewLine & "The setting of the rights might take up to 10 minutes!", MsgBoxStyle.Information)
Else
MsgBox("Some errors occured while checking and transmitting the rights...please check the log!", MsgBoxStyle.Exclamation)
End If
Catch ex As Exception
btnCheckRights.Enabled = True
btncancel.Visible = False
ProgressPanel1.Visible = False
End Try
End Sub
End Class