Modules/ZooFlow/ClassInit.vb
2019-09-09 16:26:36 +02:00

79 lines
3.0 KiB
VB.net

Imports System.ComponentModel
Imports DevExpress.XtraSplashScreen
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Filesystem
Public Class ClassInit
Private _MainForm As frmMain
Public Sub New(ParentForm As frmMain)
_MainForm = ParentForm
End Sub
Public Sub InitializeApplication()
' Init Connectivity
' - Database / Service / Application Server
' (Init Licensing)
' Init User
' Zeile -> Objekt / NameValue List
If Not InitializeDatabase() Then
MsgBox("Verbindung konnte nicht hergestellt werden! Anwendung wird beendet", MsgBoxStyle.Critical, _MainForm.Text)
Application.Exit()
Else
Dim oInit As New ClassInitLoader()
oInit.AddStep("Checking connectivity..", AddressOf CheckConnectivity, True)
oInit.AddStep("Checking connectivity..2", AddressOf CheckConnectivity, True)
oInit.AddStep("Checking connectivity..3", AddressOf CheckConnectivity, True)
oInit.AddStep("Checking connectivity..4", AddressOf CheckConnectivity, True)
oInit.AddStep("Checking connectivity..5", AddressOf CheckConnectivity, True)
oInit.AddStep("Checking connectivity..6", AddressOf CheckConnectivity, True)
AddHandler oInit.ProgressChanged, AddressOf ProgressChanged
AddHandler oInit.InitCompleted, AddressOf InitCompleted
SplashScreenManager.ActivateParentOnSplashFormClosing = True
SplashScreenManager.ShowForm(_MainForm, GetType(frmSplash), False, False)
oInit.Run()
End If
End Sub
Private Sub ProgressChanged(sender As Object, Progress As ClassInitLoader.InitProgress)
SplashScreenManager.Default.SendCommand(frmSplash.SplashScreenCommand.SetProgress, Progress.CurrentPercent)
SplashScreenManager.Default.SendCommand(frmSplash.SplashScreenCommand.SetActionName, Progress.CurrentStep.Name)
End Sub
Private Sub InitCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
SplashScreenManager.CloseForm(False)
End Sub
Private Sub CheckConnectivity()
Dim oCrypt As New EncryptionLegacy("!35452didalog=")
Dim oBuilder = My.SystemConfig.GetConnectionStringBuilder(My.SystemConfig.ConnectionString)
oBuilder.Password = oCrypt.DecryptData(oBuilder.Password)
Dim oDecryptedConnectionString = oBuilder.ToString
My.Database = New MSSQLServer(My.LogConfig, oDecryptedConnectionString)
If My.Database.DBInitialized = False Then
Throw New ApplicationException()
End If
End Sub
Private Function InitializeDatabase() As Boolean
If My.SystemConfig.ConnectionString = String.Empty Then
Dim oResult = frmConfigDatabase.ShowDialog()
If oResult = DialogResult.Cancel Then
MsgBox("Es wurde keine Datenbank hinterlegt. Die Anwendung wird beendet.")
Return False
End If
End If
Return True
End Function
End Class