Imports DigitalData.Modules.Database Imports DigitalData.Modules.Logging Imports GdPicture14 Imports Quartz Imports Quartz.Util Public Class CertificateDocumentJob Implements IJob Private LicenseManager As New LicenseManager() Private GdViewer As GdViewer Private LogConfig As LogConfig Private Logger As Logger Private Database As MSSQLServer Private Config As DbConfig Public Function Execute(pContext As IJobExecutionContext) As Task Implements IJob.Execute Dim oGdPictureKey As String = pContext.MergedJobDataMap.Item(Constants.GDPICTURE) LogConfig = pContext.MergedJobDataMap.Item(Constants.LOGCONFIG) Logger = LogConfig.GetLogger() Try Logger.Info("Loading GdViewer..") GdViewer = New GdViewer() LicenseManager.RegisterKEY(oGdPictureKey) Logger.Info("Loading Database..") Database = GetDatabase(pContext, LogConfig) Logger.Info("Loading Configuration..") Config = GetDbConfig(Database) Dim JobId = pContext.JobDetail.Key Logger.Info("Starting job {0}", JobId) Dim oCompleteStatus As Integer = Constants.EnvelopeStatus.EnvelopeCompletelySigned Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE WHERE STATUS = {oCompleteStatus}" Dim oTable = Database.GetDatatable(oSql) Logger.Info("Found [{0}] completed envelopes.", oTable.Rows.Count) ' Do important work... Logger.Info("Completed job {0}", JobId) Return Task.FromResult(True) Catch ex As Exception Logger.Warn("Certificate Document job failed!") Logger.Error(ex) Return Task.FromException(ex) End Try End Function Private Function GetDbConfig(pDatabase) As DbConfig Dim oState As New State With {.Database = pDatabase} Dim oConfigModel = New ConfigModel(oState) Return oConfigModel.LoadConfiguration() End Function Private Function GetDatabase(pContext As IJobExecutionContext, pLogConfig As LogConfig) As MSSQLServer Dim oConnectionString As String = pContext.MergedJobDataMap.Item(Constants.DATABASE) Dim Database = New MSSQLServer(pLogConfig, MSSQLServer.DecryptConnectionString(oConnectionString)) Return Database End Function End Class