11using System ;
2+ using System . Linq ;
23using InEngine . Core . IO ;
34using Konsole ;
45using Quartz ;
@@ -7,7 +8,6 @@ namespace InEngine.Core
78{
89 abstract public class AbstractCommand : ICommand , IFailed , IJob , IWrite
910 {
10- public IJobExecutionContext JobExecutionContext { get ; set ; }
1111 public ProgressBar ProgressBar { get ; internal set ; }
1212 public string Name { get ; set ; }
1313 public string SchedulerGroup { get ; set ; }
@@ -45,7 +45,13 @@ public void UpdateProgress(int tick)
4545 #region Scheduling
4646 public void Execute ( IJobExecutionContext context )
4747 {
48- JobExecutionContext = context ;
48+ var properties = GetType ( ) . GetProperties ( ) ;
49+ context . MergedJobDataMap . ToList ( ) . ForEach ( x => {
50+ var property = properties . FirstOrDefault ( y => y . Name == x . Key ) ;
51+ if ( property != null )
52+ property . SetValue ( this , x . Value ) ;
53+ } ) ;
54+
4955 try
5056 {
5157 Run ( ) ;
@@ -56,19 +62,6 @@ public void Execute(IJobExecutionContext context)
5662 }
5763 }
5864
59- public T GetJobContextData < T > ( string key )
60- {
61- if ( JobExecutionContext == null || JobExecutionContext . MergedJobDataMap == null )
62- return default ( T ) ;
63- var objectVal = JobExecutionContext . MergedJobDataMap . Get ( key ) ;
64- return objectVal == null ? default ( T ) : ( T ) objectVal ;
65- }
66-
67- public void AddJobContextData < T > ( string key , T val )
68- {
69- JobExecutionContext . MergedJobDataMap . Add ( key , val ) ;
70- }
71-
7265 #endregion
7366
7467 #region Console output
0 commit comments