105 lines
3.2 KiB
VB.net
105 lines
3.2 KiB
VB.net
Imports DigitalData.Modules.Base
|
|
Imports DigitalData.Modules.Database
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.Language
|
|
Imports ECM.JobRunner.Common
|
|
Imports ECM.JobRunner.Windows.Scheduler
|
|
Imports System.Runtime.InteropServices
|
|
|
|
Public Class State
|
|
Inherits BaseClass
|
|
|
|
Private ReadOnly Database As MSSQLServer
|
|
|
|
Public ReadOnly JobHistory As JobHistory
|
|
Public ReadOnly Property JobTypes As New List(Of JobType)
|
|
Public ReadOnly Property JobDefinitions As New List(Of JobDefinition)
|
|
|
|
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer)
|
|
MyBase.New(pLogConfig)
|
|
Database = pDatabase
|
|
JobHistory = New JobHistory(pLogConfig)
|
|
|
|
_JobTypes = GetJobTypes()
|
|
_JobDefinitions = GetJobDefinitions(_JobTypes)
|
|
End Sub
|
|
|
|
Public Sub Reload()
|
|
_JobTypes = GetJobTypes()
|
|
_JobDefinitions = GetJobDefinitions(_JobTypes)
|
|
End Sub
|
|
|
|
Private Function GetJobTypes() As List(Of JobType)
|
|
Dim oTypes As New List(Of JobType)
|
|
Try
|
|
Logger.Info("Loading Job Types..")
|
|
|
|
Dim oSQL As String = "SELECT * FROM TBECM_JR_TYPE WHERE ACTIVE = 1"
|
|
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
|
|
|
If oTable Is Nothing Then
|
|
Logger.Warn("Database Error while loading Job Types!")
|
|
Return oTypes
|
|
End If
|
|
|
|
Logger.Info("[{0}] Job Types loaded!", oTable.Rows.Count)
|
|
|
|
For Each oRow As DataRow In oTable.Rows
|
|
Dim oType As New JobType With {
|
|
.Id = oRow.ItemEx("GUID", 0),
|
|
.Name = oRow.ItemEx("JOB_TYPE", ""),
|
|
.Active = oRow.ItemEx("ACTIVE", 0)
|
|
}
|
|
oTypes.Add(oType)
|
|
|
|
Logger.Debug("Adding Job Type [{0}]", oType.Name)
|
|
Next
|
|
|
|
Return oTypes
|
|
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return oTypes
|
|
|
|
End Try
|
|
End Function
|
|
|
|
Private Function GetJobDefinitions(pJobTypes As List(Of JobType)) As List(Of JobDefinition)
|
|
Dim oJobs As New List(Of JobDefinition)
|
|
|
|
Try
|
|
Dim oSQL As String = "SELECT * FROM TBECM_JR_JOB"
|
|
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
|
|
|
If oTable Is Nothing Then
|
|
Logger.Warn("Database Error while loading Jobs!")
|
|
Return oJobs
|
|
End If
|
|
|
|
Logger.Info("[{0}] Jobs loaded!", oTable.Rows.Count)
|
|
|
|
For Each oRow As DataRow In oTable.Rows
|
|
Dim oTypeId = oRow.ItemEx("JOB_TYPE_ID", 0)
|
|
Dim oJob As New JobDefinition With {
|
|
.Id = oRow.ItemEx("GUID", 0),
|
|
.TypeId = oTypeId,
|
|
.Type = pJobTypes.Where(Function(t) t.Id = oTypeId).SingleOrDefault,
|
|
.Name = oRow.ItemEx("TITLE", ""),
|
|
.Active = oRow.ItemEx("ACTIVE", 0),
|
|
.CronSchedule = oRow.ItemEx("QUARTZ_DEF", "")
|
|
}
|
|
oJobs.Add(oJob)
|
|
|
|
Logger.Debug("Adding Job [{0}]", oJob.Name)
|
|
Next
|
|
|
|
Return oJobs
|
|
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return oJobs
|
|
|
|
End Try
|
|
End Function
|
|
End Class
|