74 lines
3.8 KiB
VB.net
74 lines
3.8 KiB
VB.net
Imports DigitalData.Modules.Config
|
|
Imports DigitalData.Modules.EDMI.API
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.Logging.LogConfig
|
|
|
|
Namespace My
|
|
' Für MyApplication sind folgende Ereignisse verfügbar:
|
|
' Startup: Wird beim Starten der Anwendung noch vor dem Erstellen des Startformulars ausgelöst.
|
|
' Shutdown: Wird nach dem Schließen aller Anwendungsformulare ausgelöst. Dieses Ereignis wird nicht ausgelöst, wenn die Anwendung mit einem Fehler beendet wird.
|
|
' UnhandledException: Wird bei einem Ausnahmefehler ausgelöst.
|
|
' StartupNextInstance: Wird beim Starten einer Einzelinstanzanwendung ausgelöst, wenn die Anwendung bereits aktiv ist.
|
|
' NetworkAvailabilityChanged: Wird beim Herstellen oder Trennen der Netzwerkverbindung ausgelöst.
|
|
Partial Friend Class MyApplication
|
|
Private _Logger As Logger
|
|
|
|
Private UserAppDataPath As String = Windows.Forms.Application.UserAppDataPath
|
|
Private BaseLocalUserConfigPath As String = Windows.Forms.Application.LocalUserAppDataPath
|
|
Private CommonAppDataPath As String = Windows.Forms.Application.CommonAppDataPath
|
|
Private StartupPath As String = Windows.Forms.Application.StartupPath
|
|
|
|
Public Sub App_Startup() Handles Me.Startup
|
|
Dim oLogConfig As New LogConfig(LogPath:=PathType.AppData, CompanyName:="Digital Data", ProductName:="ZooFlow", FileKeepRangeInDays:=30) With {.Debug = True}
|
|
|
|
' System Config files like Service Url will be saved in %LocalAppdata% so they will remain on the machine
|
|
Dim oConfigManager As New ConfigManager(Of ClassConfig)(oLogConfig, UserAppDataPath, CommonAppDataPath, StartupPath)
|
|
|
|
' Layout files will be saved in %Appdata% (Roaming) so they will be syncronized with the user profile
|
|
Dim oUIConfigPath = IO.Path.Combine(UserAppDataPath, ClassConstants.FOLDER_NAME_LAYOUT)
|
|
Dim oUIConfigAlternatePath = IO.Path.Combine(UserAppDataPath, ClassConstants.FOLDER_NAME_LAYOUT)
|
|
Dim oUIConfigManager As New ConfigManager(Of ClassUIConfig)(oLogConfig, oUIConfigPath, oUIConfigPath, oUIConfigAlternatePath)
|
|
|
|
LogConfig = oLogConfig
|
|
LogConfig.Debug = True
|
|
|
|
SystemConfigManager = oConfigManager
|
|
UIConfigManager = oUIConfigManager
|
|
|
|
_Logger = LogConfig.GetLogger()
|
|
_Logger.Debug("Starting ZooFlow...")
|
|
|
|
If oConfigManager.Config.AppServerConfig <> String.Empty Then
|
|
Try
|
|
Dim oSplit() As String = oConfigManager.Config.AppServerConfig.ToString.Split(":"c)
|
|
Dim oAppServerAddress As String = oSplit(0)
|
|
Dim oAppServerPort As Integer = 9000
|
|
If oSplit.Length = 2 Then
|
|
oAppServerPort = oSplit(1)
|
|
End If
|
|
|
|
My.Application.Service.Client = New Client(LogConfig, oAppServerAddress, oAppServerPort)
|
|
If Not IsNothing(My.Application.Service.Client) Then
|
|
If My.Application.Service.Client.Connect() Then
|
|
My.Application.Service.IsActive = True
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
_Logger.Warn($"Could not initialize the AppServer: {ex.Message}")
|
|
End Try
|
|
End If
|
|
|
|
Dim oCommandLineArgs As New ClassCommandlineArgs(LogConfig)
|
|
Dim oArgs = Environment.GetCommandLineArgs().Skip(1).ToList()
|
|
oCommandLineArgs.Parse(oArgs)
|
|
|
|
CommandLineFunction = oCommandLineArgs.FunctionName
|
|
CommandLineArguments = oCommandLineArgs.FunctionArgs
|
|
End Sub
|
|
|
|
Public Sub App_Shutdown(sender As Object, e As EventArgs) Handles Me.Shutdown
|
|
_Logger.Debug("Shutting down Client Suite..")
|
|
End Sub
|
|
End Class
|
|
End Namespace
|