jj: catch all exceptions in frmMain_Load

This commit is contained in:
Jonathan Jenne 2018-07-02 11:52:53 +02:00
parent d807d4ed29
commit 35b6bd5b99

View File

@ -20,84 +20,105 @@ Public Class frmMain
Private Shared logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger() Private Shared logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger()
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
NLog.LogManager.Configuration = ClassNLog.GetLoggerConfigFor(MODULE_NAME) Try
NLog.LogManager.Configuration = ClassNLog.GetLoggerConfigFor(MODULE_NAME)
logger.Info("Starting UserManager v" & Application.ProductVersion) logger.Info("Starting UserManager v" & Application.ProductVersion)
logger.Info($"Current Username: {Environment.UserName}") logger.Info($"Current Username: {Environment.UserName}")
If InitDatabase() = False Then If InitDatabase() = False Then
MsgBox($"Unexpected error in Database Init(1). {vbCrLf & vbCrLf}Please contact Your admin.", MsgBoxStyle.Critical, "UserManager") MsgBox($"Unexpected error in Database Init(1). {vbCrLf & vbCrLf}Please contact Your admin.", MsgBoxStyle.Critical, "UserManager")
logger.Fatal($"Unexpected error in Database Init(1). {vbCrLf & vbCrLf}Please contact Your admin.") logger.Fatal($"Unexpected error in Database Init(1). {vbCrLf & vbCrLf}Please contact Your admin.")
Application.Exit() Application.Exit()
Exit Sub Exit Sub
End If End If
If MyConnectionString = "" Then If MyConnectionString = "" Then
MsgBox($"Unexpected error in Database Init(2). {vbCrLf & vbCrLf}Please contact Your admin.", MsgBoxStyle.Critical, "UserManager") MsgBox($"Unexpected error in Database Init(2). {vbCrLf & vbCrLf}Please contact Your admin.", MsgBoxStyle.Critical, "UserManager")
logger.Fatal($"Unexpected error in Database Init(2). {vbCrLf & vbCrLf}Please contact Your admin.") logger.Fatal($"Unexpected error in Database Init(2). {vbCrLf & vbCrLf}Please contact Your admin.")
Application.Exit() Application.Exit()
Exit Sub Exit Sub
End If End If
TBDD_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_CLIENT_USERTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_CLIENT_USERTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_GROUPS_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_GROUPS_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_USERTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_GROUPS_USERTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_USERTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_USERTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_USER_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_USER_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString
Dim sql = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','UM',{1})", Environment.UserName, 1)
Dim DT_CHECKUSER_MODULE As DataTable = clsDatabase.Return_Datatable(sql)
Dim sql = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','UM',{1})", Environment.UserName, 1) If DT_CHECKUSER_MODULE.Rows.Count = 0 Then
Dim DT_CHECKUSER_MODULE As DataTable = clsDatabase.Return_Datatable(sql) MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager")
logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.")
Application.ExitThread()
End If
If DT_CHECKUSER_MODULE.Rows.Count = 1 Then Dim firstRow As DataRow = DT_CHECKUSER_MODULE.Rows.Item(0)
Dim userId As Integer = firstRow.Item("USER_ID")
If userId = 0 Then
MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht in der Benutzerverwaltung vorhanden. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager")
logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht in der Benutzerverwaltung vorhanden.")
Application.ExitThread()
End If
Dim userRow As TBDD_USERRow = GetCurrentUserRow(Environment.UserName) If DT_CHECKUSER_MODULE.Rows.Count = 1 Then
Dim userRow As TBDD_USERRow = GetCurrentUserRow(Environment.UserName)
tsLabelUser.Text = $"Angemeldeter Benutzer: {Environment.UserName}" If userRow Is Nothing Then
tsLabelVersion.Text = $"Version {Application.ProductVersion}"
lblADRootNode.Text = String.Format(lblADRootNode.Text, Environment.UserDomainName) End If
txtADRootNode.Text = ActiveDirectoryRootNode
CurrentUser = userRow tsLabelUser.Text = $"Angemeldeter Benutzer: {Environment.UserName}"
CurrentUserId = userRow.GUID tsLabelVersion.Text = $"Version {Application.ProductVersion}"
' Grunddaten aus Tabellen laden lblADRootNode.Text = String.Format(lblADRootNode.Text, Environment.UserDomainName)
' Davon abhängige Daten werden in den `focusedRowChanged`-Events der Grids geladen txtADRootNode.Text = ActiveDirectoryRootNode
LoadData()
'Spalten an Inhalte anpassen CurrentUser = userRow
gvUsers.BestFitColumns() CurrentUserId = userRow.GUID
viewClients_AllClients.BestFitColumns()
viewGroups_AllGroups.BestFitColumns()
' Dragdrop Events für Grids anlegen ' Grunddaten aus Tabellen laden
DragDropManager = New ClassDragDrop() ' Davon abhängige Daten werden in den `focusedRowChanged`-Events der Grids geladen
DragDropManager.AddGridView(viewGroups_AvailableUsers) LoadData()
DragDropManager.AddGridView(viewGroups_AssignedUsers)
DragDropManager.AddGridView(viewModules_AvailableUsers)
DragDropManager.AddGridView(viewModules_AssignedUsers)
DragDropManager.AddGridView(viewClients_AvailableUsers)
DragDropManager.AddGridView(viewClients_AssignedUsers)
DragDropManager.AddGridView(viewClientsGroups_AssignedGroups)
DragDropManager.AddGridView(viewClientsGroups_AvailableGroups)
DragDropManager.AddGridView(viewModulesGroups_AssignedGroups)
DragDropManager.AddGridView(viewModulesGroups_AvailableGroups)
Else
MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager")
logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.")
Application.Exit()
End If
If TBDD_USERTableAdapter.IsUserManagerAdmin(Environment.UserName) <> 1 Then 'Spalten an Inhalte anpassen
MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager") gvUsers.BestFitColumns()
logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.") viewClients_AllClients.BestFitColumns()
Application.Exit() viewGroups_AllGroups.BestFitColumns()
End If
' Dragdrop Events für Grids anlegen
DragDropManager = New ClassDragDrop()
DragDropManager.AddGridView(viewGroups_AvailableUsers)
DragDropManager.AddGridView(viewGroups_AssignedUsers)
DragDropManager.AddGridView(viewModules_AvailableUsers)
DragDropManager.AddGridView(viewModules_AssignedUsers)
DragDropManager.AddGridView(viewClients_AvailableUsers)
DragDropManager.AddGridView(viewClients_AssignedUsers)
DragDropManager.AddGridView(viewClientsGroups_AssignedGroups)
DragDropManager.AddGridView(viewClientsGroups_AvailableGroups)
DragDropManager.AddGridView(viewModulesGroups_AssignedGroups)
DragDropManager.AddGridView(viewModulesGroups_AvailableGroups)
Else
MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager")
logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.")
Application.ExitThread()
End If
If TBDD_USERTableAdapter.IsUserManagerAdmin(Environment.UserName) <> 1 Then
MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager")
logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.")
Application.ExitThread()
End If
Catch ex As Exception
MsgBox("Unexpected Error while loading. Please check the log.", MsgBoxStyle.Critical, "User Manager")
logger.Fatal(ex, "Unexpected Error while loading.")
End Try
End Sub End Sub
Public Function InitDatabase() Public Function InitDatabase()