diff --git a/ECM.JobRunner.Windows/App.config b/ECM.JobRunner.Windows/App.config
index f214fbb..5aaa809 100644
--- a/ECM.JobRunner.Windows/App.config
+++ b/ECM.JobRunner.Windows/App.config
@@ -1,38 +1,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
\ No newline at end of file
+
diff --git a/ECM.JobRunner.Windows/ECM.JobRunner.Windows.vbproj b/ECM.JobRunner.Windows/ECM.JobRunner.Windows.vbproj
index 2a3896e..2bb01bc 100644
--- a/ECM.JobRunner.Windows/ECM.JobRunner.Windows.vbproj
+++ b/ECM.JobRunner.Windows/ECM.JobRunner.Windows.vbproj
@@ -14,6 +14,7 @@
v4.6.2truetrue
+ AnyCPU
@@ -125,6 +126,7 @@
TrueApplication.myapp
+ TrueProjectInstaller.vb
@@ -133,9 +135,7 @@
Component
-
-
diff --git a/ECM.JobRunner.Windows/My Project/Application.Designer.vb b/ECM.JobRunner.Windows/My Project/Application.Designer.vb
index 88dd01c..8ab460b 100644
--- a/ECM.JobRunner.Windows/My Project/Application.Designer.vb
+++ b/ECM.JobRunner.Windows/My Project/Application.Designer.vb
@@ -1,10 +1,10 @@
'------------------------------------------------------------------------------
'
-' This code was generated by a tool.
-' Runtime Version:4.0.30319.42000
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
'
-' Changes to this file may cause incorrect behavior and will be lost if
-' the code is regenerated.
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
'
'------------------------------------------------------------------------------
diff --git a/ECM.JobRunner.Windows/My Project/Resources.Designer.vb b/ECM.JobRunner.Windows/My Project/Resources.Designer.vb
index fe4c9b8..e9f9e59 100644
--- a/ECM.JobRunner.Windows/My Project/Resources.Designer.vb
+++ b/ECM.JobRunner.Windows/My Project/Resources.Designer.vb
@@ -1,40 +1,41 @@
'------------------------------------------------------------------------------
'
-' This code was generated by a tool.
-' Runtime Version:4.0.30319.42000
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
'
-' Changes to this file may cause incorrect behavior and will be lost if
-' the code is regenerated.
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
'
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
+Imports System
Namespace My.Resources
-
- 'This class was auto-generated by the StronglyTypedResourceBuilder
- 'class via a tool like ResGen or Visual Studio.
- 'To add or remove a member, edit your .ResX file then rerun ResGen
- 'with the /str option, or rebuild your VS project.
+
+ 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
+ '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
+ 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
+ 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
'''
- ''' A strongly-typed resource class, for looking up localized strings, etc.
+ ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
'''
- _
+ _
Friend Module Resources
-
+
Private resourceMan As Global.System.Resources.ResourceManager
-
+
Private resourceCulture As Global.System.Globalization.CultureInfo
-
+
'''
- ''' Returns the cached ResourceManager instance used by this class.
+ ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
'''
- _
+ _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
@@ -44,17 +45,17 @@ Namespace My.Resources
Return resourceMan
End Get
End Property
-
+
'''
- ''' Overrides the current thread's CurrentUICulture property for all
- ''' resource lookups using this strongly typed resource class.
+ ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
+ ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
'''
- _
+ _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
- Set(ByVal value As Global.System.Globalization.CultureInfo)
+ Set
resourceCulture = value
End Set
End Property
diff --git a/ECM.JobRunner.Windows/My Project/Settings.Designer.vb b/ECM.JobRunner.Windows/My Project/Settings.Designer.vb
index df7b05a..3a169b9 100644
--- a/ECM.JobRunner.Windows/My Project/Settings.Designer.vb
+++ b/ECM.JobRunner.Windows/My Project/Settings.Designer.vb
@@ -1,10 +1,10 @@
'------------------------------------------------------------------------------
'
-' This code was generated by a tool.
-' Runtime Version:4.0.30319.42000
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
'
-' Changes to this file may cause incorrect behavior and will be lost if
-' the code is regenerated.
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
'
'------------------------------------------------------------------------------
@@ -13,42 +13,42 @@ Option Explicit On
Namespace My
-
- _
+
+ _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
-
- Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
-
-#Region "My.Settings Auto-Save Functionality"
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "Automatische My.Settings-Speicherfunktion"
#If _MyType = "WindowsForms" Then
- Private Shared addedHandler As Boolean
+ Private Shared addedHandler As Boolean
- Private Shared addedHandlerLockObject As New Object
+ Private Shared addedHandlerLockObject As New Object
- _
- Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
- If My.Application.SaveMySettingsOnExit Then
- My.Settings.Save()
- End If
- End Sub
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
#End If
#End Region
-
+
Public Shared ReadOnly Property [Default]() As MySettings
Get
-
+
#If _MyType = "WindowsForms" Then
- If Not addedHandler Then
- SyncLock addedHandlerLockObject
- If Not addedHandler Then
- AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
- addedHandler = True
- End If
- End SyncLock
- End If
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
#End If
Return defaultInstance
End Get
@@ -57,13 +57,13 @@ Namespace My
End Namespace
Namespace My
-
- _
+
+ _
Friend Module MySettingsProperty
-
- _
+
+ _
Friend ReadOnly Property Settings() As Global.ECM.JobRunner.Windows.My.MySettings
Get
Return Global.ECM.JobRunner.Windows.My.MySettings.Default
diff --git a/ECM.JobRunner.Windows/Scheduler/JobListener.vb b/ECM.JobRunner.Windows/Scheduler/JobListener.vb
index 155669f..3ec7612 100644
--- a/ECM.JobRunner.Windows/Scheduler/JobListener.vb
+++ b/ECM.JobRunner.Windows/Scheduler/JobListener.vb
@@ -12,27 +12,27 @@ Namespace Scheduler
Private ReadOnly Logger As Logger
Private ReadOnly LogConfig As LogConfig
- Private ReadOnly History As JobHistory
+ 'Private ReadOnly History As JobHistory
- Public Sub New(pLogConfig As LogConfig, pJobHistory As JobHistory)
+ Public Sub New(pLogConfig As LogConfig)
MyBase.New()
LogConfig = pLogConfig
Logger = pLogConfig.GetLogger()
- History = pJobHistory
+ 'History = pJobHistory
End Sub
Public Overrides Function JobWasExecuted(context As IJobExecutionContext, jobException As JobExecutionException, Optional cancellationToken As Threading.CancellationToken = Nothing) As Task
+ ' TODO: This might not be needed anymore
+ '
If jobException Is Nothing Then
- If TypeOf context.Result Is JobResult Then
- Dim oResult As JobResult = context.Result
- History.AddSuccess(context.JobDetail.Key.Name, oResult.Description, oResult.Steps)
- Else
-
- History.AddSuccess(context.JobDetail.Key.Name, "Job Successful!", New List(Of HistoryItem.HistoryStep))
+ If TypeOf context.Result Is StatusItem Then
+ Dim oResult As StatusItem = context.Result
+ Logger.Info("Job [{0}] was executed in [{1}]!", oResult.Name, oResult.ExecutionTime)
+ 'History.AddSuccess(context.JobDetail.Key.Name, oResult.Description, oResult.Steps)
End If
Else
- History.AddError(context.JobDetail.Key.Name, jobException.Message, New List(Of HistoryItem.HistoryStep))
+ 'History.AddError(context.JobDetail.Key.Name, jobException.Message, New List(Of HistoryItem.HistoryStep))
End If
Return MyBase.JobWasExecuted(context, jobException, cancellationToken)
diff --git a/ECM.JobRunner.Windows/Scheduler/JobResult.vb b/ECM.JobRunner.Windows/Scheduler/JobResult.vb
deleted file mode 100644
index 26b876d..0000000
--- a/ECM.JobRunner.Windows/Scheduler/JobResult.vb
+++ /dev/null
@@ -1,7 +0,0 @@
-Imports ECM.JobRunner.Common
-
-Public Class JobResult
- Public Property Successful As Boolean
- Public Property Description As String
- Public Property Steps As List(Of HistoryItem.HistoryStep)
-End Class
diff --git a/ECM.JobRunner.Windows/Scheduler/JobScheduler.vb b/ECM.JobRunner.Windows/Scheduler/JobScheduler.vb
index 60e0f91..933858f 100644
--- a/ECM.JobRunner.Windows/Scheduler/JobScheduler.vb
+++ b/ECM.JobRunner.Windows/Scheduler/JobScheduler.vb
@@ -51,7 +51,7 @@ Namespace Scheduler
' initialize the scheduler
Scheduler = Await Factory.GetScheduler()
- Scheduler.ListenerManager.AddJobListener(New JobListener(LogConfig, State.JobHistory))
+ Scheduler.ListenerManager.AddJobListener(New JobListener(LogConfig))
' start the scheduler
Await Scheduler.Start()
diff --git a/ECM.JobRunner.Windows/Scheduler/JobStatus.vb b/ECM.JobRunner.Windows/Scheduler/JobStatus.vb
index ca050ab..24478e0 100644
--- a/ECM.JobRunner.Windows/Scheduler/JobStatus.vb
+++ b/ECM.JobRunner.Windows/Scheduler/JobStatus.vb
@@ -19,6 +19,7 @@ Public Class JobStatus
If oStatus IsNot Nothing Then
oStatus.Name = pJob.JobDetail.Key.Name
oStatus.StartTime = Date.Now
+ oStatus.UpdateTime = Date.Now
oStatus.Executing = True
End If
End Sub
@@ -32,28 +33,56 @@ Public Class JobStatus
oStatus.ProgressTotal = pTotal
oStatus.ProgressCurrent = pCurrent
oStatus.ExecutionTime = pJob.JobRunTime
+ oStatus.UpdateTime = Date.Now
End If
End Sub
- Public Sub Complete(pJob As Quartz.IJobExecutionContext)
+ Public Function CompleteWithError(pJob As Quartz.IJobExecutionContext, pSteps As List(Of StatusItem.HistoryStep), pException As Exception) As StatusItem
+ Return CompleteWithError(pJob, pSteps, pException.Message)
+ End Function
+
+ Public Function CompleteWithError(pJob As Quartz.IJobExecutionContext, pSteps As List(Of StatusItem.HistoryStep), pMessage As String) As StatusItem
Dim oStatus = GetJobStatus(pJob)
- Logger.Info("Completing Job [{0}]", oStatus.Id)
+ Logger.Info("Completing Job [{0}] with Error", oStatus.Id)
If oStatus IsNot Nothing Then
oStatus.ProgressCurrent = oStatus.ProgressTotal
oStatus.ExecutionTime = pJob.JobRunTime
oStatus.Executing = False
oStatus.CompleteTime = Date.Now
+ oStatus.FailureMessage = pMessage
+ oStatus.Successful = False
+ oStatus.Steps = pSteps
End If
- End Sub
+
+ Return oStatus
+ End Function
+
+ Public Function CompleteWithSuccess(pJob As Quartz.IJobExecutionContext, pSteps As List(Of StatusItem.HistoryStep), pMessage As String) As StatusItem
+ Dim oStatus = GetJobStatus(pJob)
+
+ Logger.Info("Completing Job [{0}] with Success", oStatus.Id)
+
+ If oStatus IsNot Nothing Then
+ oStatus.ProgressCurrent = oStatus.ProgressTotal
+ oStatus.ExecutionTime = pJob.JobRunTime
+ oStatus.Executing = False
+ oStatus.CompleteTime = Date.Now
+ oStatus.SuccessMessage = pMessage
+ oStatus.Successful = False
+ oStatus.Steps = pSteps
+ End If
+
+ Return oStatus
+ End Function
Private Function GetJobStatus(pJob As Quartz.IJobExecutionContext) As StatusItem
Dim oJobId = GetJobId(pJob)
- Dim oExists = Entries.Where(Function(e) e.Id = oJobId).Any()
+ Dim oExists = Entries.Where(Function(e) e.JobId = oJobId).Any()
If Not oExists Then
- Entries.Add(New StatusItem With {.Id = oJobId})
+ Entries.Add(New StatusItem(oJobId))
End If
Return Entries.Where(Function(e) e.Id = oJobId).SingleOrDefault()
diff --git a/ECM.JobRunner.Windows/Scheduler/Jobs/BaseJob.vb b/ECM.JobRunner.Windows/Scheduler/Jobs/BaseJob.vb
index 9fcd108..c0ca8cf 100644
--- a/ECM.JobRunner.Windows/Scheduler/Jobs/BaseJob.vb
+++ b/ECM.JobRunner.Windows/Scheduler/Jobs/BaseJob.vb
@@ -16,7 +16,7 @@ Namespace Scheduler.Jobs
Friend ExecutionId As String
Friend Name As String
- Friend ResultItems As New List(Of HistoryItem.HistoryStep)
+ Friend JobSteps As New List(Of StatusItem.HistoryStep)
Private ctx As IJobExecutionContext
@@ -34,8 +34,10 @@ Namespace Scheduler.Jobs
ExecutionId = Guid.NewGuid.ToString()
Id = Integer.Parse(oArgs.Item("Id"))
Name = oArgs.Item("Name")
-
State.JobStatus.Start(ctx)
+
+ Logger.Info("Job [{0}] is starting!", Id)
+
Return oJobData.Item(Constants.Scheduler.JOB_CONFIG_ARGUMENTS)
End Function
@@ -43,43 +45,47 @@ Namespace Scheduler.Jobs
State.JobStatus.Update(ctx, pCurrentValue, pTotalValue)
End Sub
- Public Sub LogStep(pLevel As HistoryItem.StepLevel, pMessage As String, ParamArray pArgs As String())
- ResultItems.Add(New HistoryItem.HistoryStep With {
+ Public Sub LogDebug(pMessage As String, ParamArray pArgs As String())
+ Logger.Debug(pMessage, pArgs)
+ JobSteps.Add(New StatusItem.HistoryStep With {
.Message = String.Format(pMessage, pArgs),
- .Level = pLevel
+ .Level = StatusItem.STEP_DEBUG
})
End Sub
- Public Function CompleteJob() As Task(Of Boolean)
- ctx.Result = New JobResult With {
- .Successful = True,
- .Steps = ResultItems,
- .Description = "Job completed."
- }
- State.JobStatus.Complete(ctx)
+ Public Sub LogInfo(pMessage As String, ParamArray pArgs As String())
+ Logger.Info(pMessage, pArgs)
+ JobSteps.Add(New StatusItem.HistoryStep With {
+ .Message = String.Format(pMessage, pArgs),
+ .Level = StatusItem.STEP_INFO
+ })
+ End Sub
+ Public Sub LogWarning(pMessage As String, ParamArray pArgs As String())
+ Logger.Warn(pMessage, pArgs)
+ JobSteps.Add(New StatusItem.HistoryStep With {
+ .Message = String.Format(pMessage, pArgs),
+ .Level = StatusItem.STEP_WARNING
+ })
+ End Sub
+
+ Public Sub LogError(pMessage As String, ParamArray pArgs As String())
+ Logger.Error(pMessage, pArgs)
+ JobSteps.Add(New StatusItem.HistoryStep With {
+ .Message = String.Format(pMessage, pArgs),
+ .Level = StatusItem.STEP_ERROR
+ })
+ End Sub
+
+
+ Public Function CompleteJob(pMessage As String) As Task(Of Boolean)
+ ctx.Result = State.JobStatus.CompleteWithSuccess(ctx, JobSteps, pMessage)
Return Task.FromResult(True)
End Function
- Public Function CompleteJob(pCompletionMessage As String) As Task(Of Boolean)
- ctx.Result = New JobResult With {
- .Successful = True,
- .Steps = ResultItems,
- .Description = pCompletionMessage
- }
- State.JobStatus.Complete(ctx)
-
- Return Task.FromResult(True)
- End Function
-
- Public Function CompleteJob(pException As Exception) As Task(Of Boolean)
- ctx.Result = New JobResult With {
- .Successful = False,
- .Steps = ResultItems,
- .Description = pException.Message
- }
- State.JobStatus.Complete(ctx)
+ Public Function CompleteJobWithError(pException As Exception) As Task(Of Boolean)
+ ctx.Result = State.JobStatus.CompleteWithError(ctx, JobSteps, pException)
Return Task.FromResult(False)
End Function
End Class
diff --git a/ECM.JobRunner.Windows/Scheduler/Jobs/DebugJob.vb b/ECM.JobRunner.Windows/Scheduler/Jobs/DebugJob.vb
index 702bbb2..d0c394f 100644
--- a/ECM.JobRunner.Windows/Scheduler/Jobs/DebugJob.vb
+++ b/ECM.JobRunner.Windows/Scheduler/Jobs/DebugJob.vb
@@ -8,18 +8,17 @@ Namespace Scheduler.Jobs
Private Function IJob_Execute(context As IJobExecutionContext) As Task Implements IJob.Execute
Dim oArgs = MyBase.InitializeJob(context)
+ Dim oRandom = New Random()
- Logger.Info("I'm a debug Job!")
- Logger.Info("Name: [{0}]", Name)
+ Dim oTotal As Integer = oRandom.Next(5, 15)
+ For index = 1 To oTotal
+ Logger.Info("We are still waiting [{0}/{1}]", index, oTotal)
+ LogInfo("We are still waiting [{0}/{1}]", index, oTotal)
- Dim oResult = New JobResult() With {
- .Description = $"I'm a debug job and my result was [{Guid.NewGuid}]."
- }
+ Threading.Thread.Sleep(1000)
+ Next
- context.Result = oResult
-
- CompleteJob("Done!")
- Return Task.FromResult(True)
+ Return CompleteJob("Finished, not waiting anymore!")
End Function
End Class
End Namespace
diff --git a/ECM.JobRunner.Windows/Scheduler/Jobs/FileImportJob.vb b/ECM.JobRunner.Windows/Scheduler/Jobs/FileImportJob.vb
index 3ab85a9..4fd9a97 100644
--- a/ECM.JobRunner.Windows/Scheduler/Jobs/FileImportJob.vb
+++ b/ECM.JobRunner.Windows/Scheduler/Jobs/FileImportJob.vb
@@ -6,47 +6,6 @@ Imports ECM.JobRunner.Common
Namespace Scheduler.Jobs
- '''
- '''
- ''' Parameters / Properties
- ''' =======================
- '''
- ''' - SourceDirectory
- ''' - TargetDirectory
- ''' - Include Subdirectories
- ''' - Delete Subdirectories
- ''' - Backup
- ''' - BackupFolder
- ''' - Overwrite
- ''' - Windream DocType
- ''' - Delete Files
- ''' - Delete Directory
- ''' - Delay
- '''
- ''' Rules
- ''' ======
- '''
- ''' - TargetIndex
- ''' - Active
- ''' - Index From
- ''' - Static
- ''' - Static Value
- ''' - File
- ''' - Folder
- ''' - Index Type
- ''' - Separator
- ''' - Current Date
- ''' - Current Short Date
- ''' - KOMPLETT
- ''' - BEREICH
- ''' - REST
- ''' - TRENNZEICHEN
- ''' - Separator
- ''' - Remove Zeroes
- ''' - Include Extension
- ''' - OrderKey
- '''
- '''
Public Class FileImportJob
Inherits BaseJob
Implements IJob
@@ -69,7 +28,7 @@ Namespace Scheduler.Jobs
Dim oObjectType = State.ObjectTypes.Where(Function(o) o.Name = oProfile.ObjectTypeName).SingleOrDefault()
If IO.Directory.Exists(oProfile.SourceFolder) = False Then
- LogStep(HistoryItem.StepLevel.Error, "Source directory [{0}] does not exist!", oProfile.SourceFolder)
+ LogError("Source directory [{0}] does not exist!", oProfile.SourceFolder)
Return Task.FromResult(False)
End If
@@ -84,8 +43,7 @@ Namespace Scheduler.Jobs
Return CompleteJob("No files for profile")
End If
- Logger.Info("[{0}] files found in source directory [{1}]", oFileNames.Count, oProfile.SourceFolder)
- LogStep(HistoryItem.StepLevel.Info, "{0} files found in source directory {1}", oFileNames.Count, oProfile.SourceFolder)
+ LogInfo("{0} files found in source directory {1}", oFileNames.Count, oProfile.SourceFolder)
' - [ ] Process Rules, build list of files and indexes
' - [x] Process Regex to filter out files
@@ -110,15 +68,13 @@ Namespace Scheduler.Jobs
' Check time to filter out files
Dim oDateFilteredFiles = oFilteredFiles.Where(Function(f) FileIsOlderThan(f, pMinutes:=1)).ToList()
Dim oDateFilteredCount = oFilteredFiles.Except(oDateFilteredFiles).Count()
- Logger.Debug("[{0}] Files filtered out for being too new.", oDateFilteredCount)
- LogStep(HistoryItem.StepLevel.Debug, "{0} Files filtered out for being too new.", oDateFilteredCount)
+ LogDebug("{0} Files filtered out for being too new.", oDateFilteredCount)
oFilteredFiles = oDateFilteredFiles
' Process Regex to filter out files
Dim oRegexFilteredFiles = oFilteredFiles.Where(Function(f) Not FileMatchesRegex(f, oRegexList))
Dim oRegexFilteredCount = oFilteredFiles.Except(oRegexFilteredFiles).Count()
- Logger.Debug("[{0}] Files filtered out for matching exclusion Regex.", oRegexFilteredCount)
- LogStep(HistoryItem.StepLevel.Debug, "{0} Files filtered out for matching exclusion Regex.", oRegexFilteredCount)
+ LogDebug("{0} Files filtered out for matching exclusion Regex.", oRegexFilteredCount)
oFilteredFiles = oDateFilteredFiles
'-------------------------------------------------------------------------------------------------
@@ -143,8 +99,7 @@ Namespace Scheduler.Jobs
oImportedFiles.Add(oFile)
Next
- Logger.Info("[{0}] files successfully Imported!", oImportedFiles.Count)
- LogStep(HistoryItem.StepLevel.Info, "{0} files successfully Imported!", oImportedFiles.Count)
+ LogInfo("{0} files successfully Imported!", oImportedFiles.Count)
Dim oIndexedFiles As New List(Of ImportFile)
For Each oFile In oImportedFiles
@@ -156,8 +111,7 @@ Namespace Scheduler.Jobs
Logger.Info("Indexing of file [{0}] done!", oFile.FilePathWindream)
Next
- Logger.Info("[{0}] files successfully Indexed!", oIndexedFiles.Count)
- LogStep(HistoryItem.StepLevel.Info, "{0} files successfully Indexed!", oIndexedFiles.Count)
+ LogInfo("{0} files successfully Indexed!", oIndexedFiles.Count)
If oProfile.DeleteFiles = True Then
Logger.Debug("Deleting [{0}] files before finishing job.", oFiles.Count)
@@ -175,10 +129,9 @@ Namespace Scheduler.Jobs
Return CompleteJob($"{oImportedFiles.Count} files successfully Processed!")
Catch ex As Exception
Logger.Error(ex)
+ LogError("Unexpected Error: [{0}]", ex.Message)
- LogStep(HistoryItem.StepLevel.Error, "Unexpected Error: [{0}]", ex.Message)
-
- Return CompleteJob(ex)
+ Return CompleteJobWithError(ex)
End Try
End Function
@@ -287,8 +240,7 @@ Namespace Scheduler.Jobs
oValue = oValue.Substring(oStartIndex, oLength)
Catch ex As Exception
Dim oMessage = "Method SUBSTRING could not be applied to Index '{0}' and Parameters StartIndex [{1}], Length [{2}]. Error: '{3}'"
- LogStep(HistoryItem.StepLevel.Error, oMessage, oStep.IndexName, ex.Message, oStep.Argument1, oStep.Argument2)
- Logger.Error(ex)
+ LogError(oMessage, oStep.IndexName, ex.Message, oStep.Argument1, oStep.Argument2)
End Try
Case Common.Constants.METHOD_SPLIT
@@ -306,8 +258,7 @@ Namespace Scheduler.Jobs
Dim oSplit = oValue.Split(oSeparator)
oValue = oSplit(oIndex)
Catch ex As Exception
- LogStep(HistoryItem.StepLevel.Error, "Method SPLIT could not be applied to Index '{0}'. Error: '{1}'", oStep.IndexName, ex.Message)
- Logger.Error(ex)
+ LogError("Method SPLIT could not be applied to Index '{0}'. Error: '{1}'", oStep.IndexName, ex.Message)
End Try
Case Common.Constants.METHOD_REGEX
@@ -321,8 +272,7 @@ Namespace Scheduler.Jobs
oValue = oFalseValue
End If
Catch ex As Exception
- LogStep(HistoryItem.StepLevel.Error, "Method REGEX could not be applied to Index '{0}'. Error: '{1}'", oStep.IndexName, ex.Message)
- Logger.Error(ex)
+ LogError("Method REGEX could not be applied to Index '{0}'. Error: '{1}'", oStep.IndexName, ex.Message)
End Try
Case Common.Constants.METHOD_VALUE
diff --git a/ECM.JobRunner.Windows/Scheduler/Jobs/FileIndexJob.vb b/ECM.JobRunner.Windows/Scheduler/Jobs/FileIndexJob.vb
index 73a8c3b..2798f08 100644
--- a/ECM.JobRunner.Windows/Scheduler/Jobs/FileIndexJob.vb
+++ b/ECM.JobRunner.Windows/Scheduler/Jobs/FileIndexJob.vb
@@ -11,14 +11,7 @@ Namespace Scheduler.Jobs
Logger.Info("Running File Index [{0}]", Name)
- Dim oResult = New JobResult() With {
- .Description = $"File Index Job [{Name}] completed!"
- }
-
- context.Result = oResult
-
- CompleteJob("Done!")
- Return Task.FromResult(True)
+ Return CompleteJob("Done!")
End Function
End Class
End Namespace
diff --git a/ECM.JobRunner.Windows/Service.vb b/ECM.JobRunner.Windows/Service.vb
index af154d3..8921219 100644
--- a/ECM.JobRunner.Windows/Service.vb
+++ b/ECM.JobRunner.Windows/Service.vb
@@ -63,8 +63,19 @@ Public Class Service
' start the service
Dim oAddresses() As Uri = {Binding.GetAddress(Config.Host, Config.Port, Config.Name)}
+ Logger.Info("Starting WCF Endpoint at [{0}]", oAddresses.First.ToString)
ServiceHost = New WCF.ServiceHost(Of WCF.JobRunner)(oAddresses)
ServiceHost.EnableMetadataExchange(True)
+
+ Logger.Debug("Listing Endpoints:")
+ For Each oEndpoint In ServiceHost.Description.Endpoints
+ Logger.Debug("Name: {0}", oEndpoint.Name)
+ Logger.Debug("Address: {0}", oEndpoint.Address.ToString)
+ Logger.Debug("Listen Uri: {0}", oEndpoint.ListenUri.AbsoluteUri)
+ Logger.Debug("Binding: {0}", oEndpoint.Binding.Name)
+ Logger.Debug("Contract: {0}", oEndpoint.Contract.Name)
+ Next
+
ServiceHost.Open()
Logger.Info("WCF Endpoint started!")
diff --git a/ECM.JobRunner.Windows/WCF/Methods/GetJobStatus.vb b/ECM.JobRunner.Windows/WCF/Methods/GetJobStatus.vb
index 216444b..2cd8a5f 100644
--- a/ECM.JobRunner.Windows/WCF/Methods/GetJobStatus.vb
+++ b/ECM.JobRunner.Windows/WCF/Methods/GetJobStatus.vb
@@ -18,7 +18,6 @@ Public Class GetJobStatus
Public Function Run() As GetJobStatusResponse
Return New GetJobStatusResponse With {
- .HistoryItems = State.JobHistory.Entries,
.StatusItems = State.JobStatus.Entries
}
End Function
@@ -28,9 +27,6 @@ Public Class GetJobStatus
Public Class GetJobStatusResponse
Inherits Base.BaseResponse
-
- Public Property HistoryItems As List(Of HistoryItem)
-
Public Property StatusItems As List(Of StatusItem)
End Class
diff --git a/ECM.JobRunner.Windows/WCF/ServiceHost.vb b/ECM.JobRunner.Windows/WCF/ServiceHost.vb
index 9eb84fe..8b1e546 100644
--- a/ECM.JobRunner.Windows/WCF/ServiceHost.vb
+++ b/ECM.JobRunner.Windows/WCF/ServiceHost.vb
@@ -16,7 +16,7 @@ Namespace WCF
End Sub
- Public Sub EnableMetadataExchange(ByVal Optional EnableHttpGet As Boolean = True)
+ Public Sub EnableMetadataExchange(Optional EnableHttpGet As Boolean = True)
If State = CommunicationState.Opened Then
Throw New InvalidOperationException("Host is already opened")
End If