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 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($"Current Username: {Environment.UserName}")
logger.Info("Starting UserManager v" & Application.ProductVersion)
logger.Info($"Current Username: {Environment.UserName}")
If InitDatabase() = False Then
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.")
Application.Exit()
Exit Sub
End If
If MyConnectionString = "" Then
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.")
Application.Exit()
Exit Sub
End If
If InitDatabase() = False Then
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.")
Application.Exit()
Exit Sub
End If
If MyConnectionString = "" Then
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.")
Application.Exit()
Exit Sub
End If
TBDD_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_CLIENT_USERTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_USERTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_USERTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_USER_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_CLIENT_USERTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_GROUPS_USERTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString
TBDD_USERTableAdapter.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)
Dim DT_CHECKUSER_MODULE As DataTable = clsDatabase.Return_Datatable(sql)
If DT_CHECKUSER_MODULE.Rows.Count = 0 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
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}"
tsLabelVersion.Text = $"Version {Application.ProductVersion}"
If userRow Is Nothing Then
lblADRootNode.Text = String.Format(lblADRootNode.Text, Environment.UserDomainName)
txtADRootNode.Text = ActiveDirectoryRootNode
End If
CurrentUser = userRow
CurrentUserId = userRow.GUID
tsLabelUser.Text = $"Angemeldeter Benutzer: {Environment.UserName}"
tsLabelVersion.Text = $"Version {Application.ProductVersion}"
' Grunddaten aus Tabellen laden
' Davon abhängige Daten werden in den `focusedRowChanged`-Events der Grids geladen
LoadData()
lblADRootNode.Text = String.Format(lblADRootNode.Text, Environment.UserDomainName)
txtADRootNode.Text = ActiveDirectoryRootNode
'Spalten an Inhalte anpassen
gvUsers.BestFitColumns()
viewClients_AllClients.BestFitColumns()
viewGroups_AllGroups.BestFitColumns()
CurrentUser = userRow
CurrentUserId = userRow.GUID
' 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.Exit()
End If
' Grunddaten aus Tabellen laden
' Davon abhängige Daten werden in den `focusedRowChanged`-Events der Grids geladen
LoadData()
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.Exit()
End If
'Spalten an Inhalte anpassen
gvUsers.BestFitColumns()
viewClients_AllClients.BestFitColumns()
viewGroups_AllGroups.BestFitColumns()
' 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
Public Function InitDatabase()