This commit is contained in:
Jonathan Jenne 2023-12-19 08:36:37 +01:00
parent f54532a4b1
commit 9b39f0b4ae

View File

@ -11,7 +11,6 @@ Imports System.ComponentModel
Public Class frmSplashScreen Public Class frmSplashScreen
Private LogConfig As LogConfig Private LogConfig As LogConfig
Private Logger As Logger Private Logger As Logger
Private Database As MSSQLServer
Private ConfigManager As ConfigManager(Of Config) Private ConfigManager As ConfigManager(Of Config)
Private WithEvents Worker As New BackgroundWorker() With {.WorkerReportsProgress = True} Private WithEvents Worker As New BackgroundWorker() With {.WorkerReportsProgress = True}
@ -22,25 +21,54 @@ Public Class frmSplashScreen
Me.BringToFront() Me.BringToFront()
End Sub End Sub
Private Sub Worker_DoWork(sender As Object, e As DoWorkEventArgs) Handles Worker.DoWork Private Sub frmSplashScreen_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Dim oLogPath = IO.Path.Combine(Application.LocalUserAppDataPath, "Log")
LogConfig = New LogConfig(LogConfig.PathType.CustomPath, oLogPath, CompanyName:="Digital Data", ProductName:="Envelope Generator")
Logger = LogConfig.GetLogger()
Try
ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath, Application.CommonAppDataPath, Application.StartupPath)
If ConfigManager.Config.ConnectionString = String.Empty Then
Dim oSQLConfig As New frmSQLConfig(LogConfig)
If oSQLConfig.ShowDialog() = DialogResult.OK Then
ConfigManager.Config.ConnectionString = oSQLConfig.ConnectionString
ConfigManager.Save()
MsgBox("Database configured. Application will restart.", MsgBoxStyle.Critical, Text)
Application.Restart()
Else
MsgBox("No Database configured. Application will close!", MsgBoxStyle.Critical, Text)
Application.Exit()
End If
End If
Worker.RunWorkerAsync(New State() With {
.User = Nothing,
.UserId = 0,
.LogConfig = LogConfig,
.Config = ConfigManager.Config,
.Database = Nothing,
.DbConfig = New DbConfig()
})
Catch ex As Exception
Logger.Error(ex)
MsgBox("Fehler beim Initialisieren: " & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, MsgBoxStyle.Critical, Text)
Application.Exit()
End Try
End Sub
Private Sub Worker_DoWork(sender As Object, e As DoWorkEventArgs) Handles Worker.DoWork
Dim oState As State = DirectCast(e.Argument, State) Dim oState As State = DirectCast(e.Argument, State)
Worker.ReportProgress(20, "Initialize Database") Worker.ReportProgress(20, "Initialize Database")
Thread.Sleep(300) Thread.Sleep(300)
Dim oConnectionString = MSSQLServer.DecryptConnectionString(oState.Config.ConnectionString) Dim oConnectionString = MSSQLServer.DecryptConnectionString(oState.Config.ConnectionString)
Database = New MSSQLServer(oState.LogConfig, oConnectionString) oState.Database = New MSSQLServer(oState.LogConfig, oConnectionString)
oState = New State With { If oState.Database?.DBInitialized = False Then
.UserId = 0,
.Config = oState.Config,
.DbConfig = New DbConfig(),
.LogConfig = LogConfig,
.Database = Database
}
If Database.DBInitialized = False Then
Throw New ApplicationException("Could not connect to the database. Application will close!") Throw New ApplicationException("Could not connect to the database. Application will close!")
End If End If
@ -108,31 +136,7 @@ Public Class frmSplashScreen
Close() Close()
End Sub End Sub
Private Sub frmSplashScreen_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Dim oLogPath = IO.Path.Combine(Application.LocalUserAppDataPath, "Log")
LogConfig = New LogConfig(LogConfig.PathType.CustomPath, oLogPath, CompanyName:="Digital Data", ProductName:="Envelope Generator")
Logger = LogConfig.GetLogger()
ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath, Application.CommonAppDataPath, Application.StartupPath)
If ConfigManager.Config.ConnectionString = String.Empty Then
Dim oSQLConfig As New frmSQLConfig(LogConfig)
If oSQLConfig.ShowDialog() = DialogResult.OK Then
ConfigManager.Config.ConnectionString = oSQLConfig.ConnectionString
ConfigManager.Save()
MsgBox("Database configured. Application will restart.", MsgBoxStyle.Critical, Text)
Application.Restart()
Else
MsgBox("No Database configured. Application will close!", MsgBoxStyle.Critical, Text)
Application.Exit()
End If
End If
Worker.RunWorkerAsync(New State() With {
.LogConfig = LogConfig,
.Config = ConfigManager.Config
})
End Sub
End Class End Class