95 lines
3.6 KiB
VB.net
95 lines
3.6 KiB
VB.net
Imports DevExpress.XtraBars.Docking
|
|
Imports System.Globalization
|
|
Imports System.Threading
|
|
Imports DigitalData.GUIs.Common
|
|
Imports DigitalData.Modules.Config
|
|
Imports DigitalData.Modules.Database
|
|
Imports DigitalData.Modules.Logging
|
|
Imports EnvelopeGenerator.Common
|
|
|
|
Public Class frmSplashScreen
|
|
Private LogConfig As LogConfig
|
|
Private Logger As Logger
|
|
Private Database As MSSQLServer
|
|
Private ConfigManager As ConfigManager(Of Config)
|
|
|
|
|
|
Private State As State
|
|
|
|
Private Sub frmSplashScreen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
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()
|
|
Application.Restart()
|
|
Else
|
|
Throw New ApplicationException("No Database configured. Application will close!")
|
|
End If
|
|
End If
|
|
|
|
Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString)
|
|
Database = New MSSQLServer(LogConfig, oConnectionString)
|
|
|
|
State = New State With {
|
|
.UserId = 0,
|
|
.Config = ConfigManager.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!")
|
|
End If
|
|
|
|
Dim ConfigModel = New ConfigModel(State)
|
|
State.DbConfig = ConfigModel.LoadConfiguration()
|
|
|
|
Dim oUserModel = New UserModel(State)
|
|
State.UserId = oUserModel.SelectUserId()
|
|
|
|
Dim oUser = oUserModel.SelectUser()
|
|
oUser = oUserModel.CheckUserLogin(oUser)
|
|
|
|
Dim oCultureInfo As CultureInfo
|
|
oCultureInfo = New CultureInfo(oUser.Language)
|
|
Thread.CurrentThread.CurrentCulture = oCultureInfo
|
|
Thread.CurrentThread.CurrentUICulture = oCultureInfo
|
|
CultureInfo.DefaultThreadCurrentCulture = oCultureInfo
|
|
CultureInfo.DefaultThreadCurrentUICulture = oCultureInfo
|
|
|
|
If oUser.HasAccess = False Then
|
|
Throw New ApplicationException("User is not activated for this module. Please contact your administrator. Application will close!")
|
|
End If
|
|
|
|
If Not String.IsNullOrEmpty(State.DbConfig.ExternalProgramName) Then
|
|
Text = State.DbConfig.ExternalProgramName
|
|
End If
|
|
|
|
Dim oForm As New frmMain(State)
|
|
oForm.ShowDialog()
|
|
|
|
' Close this form after frmMain is closed
|
|
Close()
|
|
|
|
Catch ex As ApplicationException
|
|
Logger.Error(ex)
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
|
|
Application.Exit()
|
|
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
MsgBox($"Unexpected error: {ex.Message}", MsgBoxStyle.Critical, Text)
|
|
Application.Exit()
|
|
|
|
End Try
|
|
End Sub
|
|
End Class |