Ejemplo n.º 1
0
 public Job(JobConf conf)
     : this(conf.Name)
 {
     this.Conf = conf;
     conf.WorkerFiles.Each(confFile =>
     {
         WorkerConf workerConf = WorkerConf.Load(confFile);
         this.AddWorker(workerConf.CreateWorker(this));
     });
 }
Ejemplo n.º 2
0
        public void Configure(WorkerConf conf)
        {
            Type workerType = this.GetType();

            conf.Properties.Each(kvp =>
            {
                PropertyInfo property = workerType.GetProperty(kvp.Key);
                if (property != null && property.CanWrite)
                {
                    property.SetValue(this, kvp.Value);
                }
            });
        }
Ejemplo n.º 3
0
        public void SaveConf(string path)
        {
            Type workerType = this.GetType();

            PropertyInfo[] properties = workerType.GetProperties().Where(pi => pi.PropertyType == typeof(string) && !pi.Name.Equals("Name")).ToArray();
            WorkerConf     conf       = new WorkerConf(this);

            conf.StepNumber = StepNumber;
            properties.Each(prop =>
            {
                conf.AddProperty(prop.Name, (string)prop.GetValue(this));
            });
            conf.Save(path);
        }
Ejemplo n.º 4
0
        protected internal object GetWorker(Type workerType, string workerName)
        {
            Args.ThrowIfNull(workerType, "workerType");

            object worker = workerType.Construct();

            if (!WorkerExists(workerName, out string path))
            {
                Worker w = (Worker)worker;
                w.Name = workerName;
                AddWorker(w);
            }
            else
            {
                WorkerConf conf = WorkerConf.Load(path);
                worker = conf.CreateWorker();
            }

            return(worker);
        }