Jonathan Jenne 681583b3f0 add service
2023-12-08 14:30:09 +01:00

73 lines
2.3 KiB
VB.net

Imports System.Timers
Imports System.IO
Imports System.ComponentModel
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Messaging
Imports DigitalData.Modules.Config
Public Class Service
Private Logger As Logger
Private LogConfig As LogConfig
Private ConfigManager As ConfigManager(Of Config)
Private Config As Config
Private Database As MSSQLServer
Private Scheduler As Scheduler
Protected Overrides Async Sub OnStart(ByVal args() As String)
Try
' === Initialize Logger ===
Dim oLogPath = Path.Combine(My.Application.Info.DirectoryPath, "Log")
LogConfig = New LogConfig(LogConfig.PathType.CustomPath, oLogPath, Nothing, "Digital Data", "EmailGenerator.Service")
' === Initialize Config ===
ConfigManager = New ConfigManager(Of Config)(LogConfig, My.Application.Info.DirectoryPath)
Config = ConfigManager.Config
LogConfig.Debug = Config.Debug
Logger = LogConfig.GetLogger()
Logger.Info($"DEBUG = {LogConfig.Debug}")
Logger.Info("Starting [{0}]", ServiceName)
' === Initialize Databases ===
Logger.Info("Inititalize Databases")
If Config.ConnectionString <> String.Empty Then
Database = New MSSQLServer(LogConfig, Config.ConnectionString)
If Database.DBInitialized = False Then
Logger.Warn("MSSQL Connection could not be established. Check the Error Log")
End If
End If
' === Initialize Queue ===
Logger.Debug("Inititalize Quartz")
Scheduler = New Scheduler(LogConfig, Config.ConnectionString)
Await Scheduler.Start(Config.IntervalInMin)
Logger.Info("Started [{0}] !", ServiceName)
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
Protected Overrides Async Sub OnStop()
Try
Logger.Info("Stopping [{0}] !", ServiceName)
Await Scheduler.Stop()
Logger.Info("Stopped [{0}] !", ServiceName)
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
End Class