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