jj
This commit is contained in:
@@ -1,44 +1,73 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.Diagnostics
|
||||
Imports System.Threading
|
||||
Imports System.Globalization
|
||||
Imports System.ServiceModel
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Logging.LogConfig
|
||||
Imports EDMI_ClientSuite.NetworkService_DDEDM
|
||||
|
||||
Public NotInheritable Class frmSplash
|
||||
Private InitSteps As Integer = 2
|
||||
Private bw As New BackgroundWorker()
|
||||
Private _Worker As New BackgroundWorker()
|
||||
Private _ChannelFactory As ChannelFactory(Of IEDMServiceChannel)
|
||||
Private _Channel As IEDMServiceChannel
|
||||
Private _Logger As Logger
|
||||
|
||||
Private _CurrentRetry As Integer = 0
|
||||
|
||||
Private Const SLEEP_TIME = 600
|
||||
Private Const INIT_STEPS = 1
|
||||
Private Const MAX_RETRIES = 10
|
||||
Private Const OPEN_TIMEOUT = 10
|
||||
|
||||
Private Sub frmSplash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
||||
lblProductName.Text = My.Application.Info.ProductName
|
||||
lblCopyright.Text = My.Application.Info.Copyright
|
||||
lblVersion.Text = String.Format("Version {0}", My.Application.Info.Version.ToString)
|
||||
|
||||
Me.BringToFront()
|
||||
|
||||
InitProgram()
|
||||
BringToFront()
|
||||
StartWorker()
|
||||
End Sub
|
||||
|
||||
Private Sub InitProgram()
|
||||
bw.WorkerReportsProgress = True
|
||||
AddHandler bw.DoWork, AddressOf bw_DoWork
|
||||
AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged
|
||||
AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
|
||||
|
||||
bw.RunWorkerAsync()
|
||||
End Sub
|
||||
|
||||
Private Function CalcProgress(_step As Integer)
|
||||
Return _step * (100 / InitSteps)
|
||||
Private Function SetProgress(_step As Integer)
|
||||
Return _step * (100 / INIT_STEPS)
|
||||
End Function
|
||||
|
||||
<STAThread()>
|
||||
Private Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs)
|
||||
bw.ReportProgress(CalcProgress(1), "Connecting to service..")
|
||||
Dim Init = New ClassInit()
|
||||
System.Threading.Thread.Sleep(600)
|
||||
Private Sub StartWorker()
|
||||
AddHandler _Worker.DoWork, AddressOf bw_DoWork
|
||||
AddHandler _Worker.ProgressChanged, AddressOf bw_ProgressChanged
|
||||
AddHandler _Worker.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
|
||||
|
||||
bw.ReportProgress(CalcProgress(2), "Initialize User Settings")
|
||||
' Init.InitUserConfig()
|
||||
System.Threading.Thread.Sleep(600)
|
||||
_Worker.WorkerReportsProgress = True
|
||||
_Worker.RunWorkerAsync()
|
||||
End Sub
|
||||
|
||||
#Region "Worker"
|
||||
Private Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs)
|
||||
Dim oInit As ClassInit
|
||||
|
||||
Try
|
||||
oInit = New ClassInit()
|
||||
My.LogConfig = oInit._LogConfig
|
||||
_Logger = My.LogConfig.GetLogger()
|
||||
Catch ex As Exception
|
||||
Throw New Exception($"Error while initializing Logger: {ex.Message}", ex)
|
||||
End Try
|
||||
|
||||
'------------------
|
||||
_Worker.ReportProgress(SetProgress(1), "Connecting to service..")
|
||||
Try
|
||||
My.ChannelFactory = oInit.CreateService()
|
||||
My.Channel = My.ChannelFactory.CreateChannel()
|
||||
|
||||
AddHandler My.Channel.Faulted, Sub()
|
||||
_Logger.Error("Could not connect to service")
|
||||
Throw New Exception("Could not connect to service")
|
||||
End Sub
|
||||
My.Channel.Open()
|
||||
Catch ex As Exception
|
||||
Throw New Exception($"Error while connectiong to service: {ex.Message}", ex)
|
||||
End Try
|
||||
System.Threading.Thread.Sleep(SLEEP_TIME)
|
||||
|
||||
' TODO: Initialize Usersettings and populate My.Application.User
|
||||
End Sub
|
||||
|
||||
Private Sub bw_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs)
|
||||
@@ -50,11 +79,12 @@ Public NotInheritable Class frmSplash
|
||||
' Bei Fehler MsgBox anzeigen und Programm beenden
|
||||
If e.Error IsNot Nothing Then
|
||||
'ClassLogger.Add("Unexpected error in Initializing application....")
|
||||
MsgBox(e.Error.Message, MsgBoxStyle.Critical, "Unexpected error in Initializing application")
|
||||
MsgBox(e.Error.Message, MsgBoxStyle.Critical, "Critical Error")
|
||||
Application.Exit()
|
||||
End If
|
||||
|
||||
' Wenn kein Fehler, Splashscreen schließen
|
||||
Me.Close()
|
||||
End Sub
|
||||
#End Region
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user