public override void Execute()
        {
            var job = new JobFactory <int, DeformerFlattenFactory>
            {
                FactoryJob = new DeformerFlattenFactory
                {
                    Envelope = Env,
                    Input    = VertexIn,
                    Output   = VertexOut
                }
            };

            job.Run();


            // var job = new JobParallelForFactory<int, DeformerFlattenFactory>
            // {
            //     FactoryJob = new DeformerFlattenFactory
            //     {
            //         Envelope = Env,
            //         Input = VertexIn,
            //         Output = VertexOut
            //     }
            // };
            // var dpt = job.Schedule(VertexIn.Length, 64);
            // dpt.Complete();
        }
Пример #2
0
        private async Task Clone()
        {
            var wrapper = new JobOptionsWrapper {
                Options = jobOptions
            };
            var entity = new JobEntity
            {
                Owner        = await GuestRepo.Get(uid),
                CreationDate = DateTime.Now,
                JobType      = jobType,
                JobOptions   = JsonConvert.SerializeObject(wrapper, settings)
            };

            await JobRepo.Add(entity);

            // Get the entity that was just added in order to get its ID
            // entity = await JobRepo.GetAll().Include(j => j.Owner).OrderByDescending(e => e.Id).FirstAsync();

            try
            {
                var job = JobFactory.FromOptions(entity.Id, entity.Owner == null ? 0 : entity.Owner.Id, jobOptions);

                Manager.AddJob(job);
                Nav.NavigateTo($"job/{job.Id}");
            }
            catch (Exception ex)
            {
                await js.AlertException(ex);
            }
        }
Пример #3
0
 public Engine()
 {
     this.employees       = new List <IEmployee>();
     this.jobs            = new Jobs();
     this.employeeFactory = new EmployeeFactory();
     this.jobFactory      = new JobFactory();
 }
        public void Given_scheduler_with_daily_item()
        {
            var context = new TestSchedulerContext();

            _scheduler = new Scheduler(context);

            var runsoon = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);

            var foo1 = JobFactory.Daily("Foo1", () => { Console.WriteLine("Foo1"); foo1_calls += 1; }, runsoon, description: "Description for Foo1");
            var foo2 = JobFactory.Daily("Foo2", () => Console.WriteLine("Foo2"), runsoon);

            _scheduler.Schedule(foo1);
            _scheduler.Schedule(foo2);

            _scheduler.Start();

            Wait.Until(() => foo1_calls > 0, 30);

            context.MoveToTommorrow();

            Wait.Until(() => foo1_calls > 1, 30);

            context.MoveForwardNDays(2);

            Wait.Until(() => foo1_calls > 2, 50);
        }
    static void Main(string[] args)
    {
        var dt   = new DataTable();    // fill data
        var jobs = new List <Job>();

        Parallel.ForEach(dt.AsEnumerable(), row => jobs.Add(JobFactory.GetJob(row)));
    }
Пример #6
0
        public void CanRunJobSuccess()
        {
            setupCalled    = false;
            runCalled      = false;
            tearDownCalled = false;
            var mockJob = serviceProvider.GetRequiredService <MockTileGenerationJob>();

            Assert.IsNotNull(mockJob);
            mockJob.SetupInvoked    += OnSetupInvoked;
            mockJob.RunInvoked      += OnRunInvoked;
            mockJob.TearDownInvoked += OnTearDownInvoked;
            var context       = GetMockHangfireContext(typeof(VSSHangfireJobRunnerTests), TestContext.TestName, string.Empty);
            var errorProvider = new Mock <IErrorCodesProvider>();
            var configStore   = new Mock <IConfigurationStore>();
            var jobManager    = new JobRegistrationManager(loggerFactory);
            var jobFactory    = new JobFactory(serviceProvider, jobManager);
            var vssJobUid     = Guid.NewGuid();

            jobManager.RegisterJob(vssJobUid, typeof(MockTileGenerationJob));
            var devOpsNotification = new Mock <IDevOpsNotification>();
            var jobRunner          = new JobRunner(loggerFactory, errorProvider.Object, configStore.Object, jobFactory, jobManager, serviceProvider);
            var request            = new JobRequest {
                JobUid = vssJobUid, RunParameters = new DxfTileGenerationRequest()
            };
            var result = jobRunner.RunHangfireJob("testjob", request, false, null, context);

            Assert.IsTrue(setupCalled);
            Assert.IsTrue(runCalled);
            Assert.IsTrue(tearDownCalled);
        }
Пример #7
0
        public void CreateFromJobDefinitions_ForSingleValidJobDefinitionAndNoSchedule_WillCreateCorrectly()
        {
            var jobDefinitions = new List <JobDefinition> {
                GetJobDefinition("testJob", "SOD", "it does stuff")
            };
            var jobDetails = JobFactory.CreateFromJobDefinitions(jobDefinitions);

            var jobA = jobDetails[0];

            Assert.IsNotNull(jobA);
            Assert.IsTrue(jobA.JobType == typeof(ConsoleJob));
            Assert.AreEqual("SOD.testJob", jobA.Key.ToString());
            Assert.AreEqual("it does stuff", jobA.Description);
            Assert.IsTrue(jobA.Durable);
            Assert.AreEqual("Hello", jobA.JobDataMap[Constants.FieldNames.ExecutableName]);
            Assert.AreEqual("None", jobA.JobDataMap[Constants.FieldNames.Parameters]);
            Assert.AreEqual(Path.Combine(SchedulerConfig.LogPath, "SOD-testJob.txt"), jobA.JobDataMap[Constants.FieldNames.OutputFile]);
            Assert.AreEqual("SOD.a", jobA.JobDataMap[Constants.FieldNames.RunOnCompletionOf]);
            Assert.AreEqual("SOD.b", jobA.JobDataMap[Constants.FieldNames.RunOnFailureOf]);
            Assert.AreEqual("SOD.c", jobA.JobDataMap[Constants.FieldNames.RunOnSuccessOf]);
            Assert.AreEqual(3, jobA.JobDataMap[Constants.FieldNames.MaxRetries]);
            Assert.AreEqual(4, jobA.JobDataMap[Constants.FieldNames.WarnAfter]);
            Assert.AreEqual(2, jobA.JobDataMap[Constants.FieldNames.TerminateAfter]);
            Assert.AreEqual(string.Empty, jobA.JobDataMap[Constants.FieldNames.RunAt]);
            Assert.AreEqual(string.Empty, jobA.JobDataMap[Constants.FieldNames.ExclusionCalendar]);
            Assert.AreEqual(string.Empty, jobA.JobDataMap[Constants.FieldNames.RunCalendar]);
            Assert.AreEqual(string.Empty, jobA.JobDataMap[Constants.FieldNames.RunDays]);
            Assert.AreEqual(string.Empty, jobA.JobDataMap[Constants.FieldNames.Timezone]);
        }
Пример #8
0
        // Please set the following connection strings in app.config for this WebJob to run:
        // AzureWebJobsDashboard and AzureWebJobsStorage
        static void Main()
        {
            var host = JobFactory.CreateJob();

            // The following code ensures that the WebJob will be running continuously
            host.RunAndBlock();
        }
Пример #9
0
        protected async override void OnStart(string[] args)
        {
            try
            {
                //Configure Container
                IContainer container = Helpers.IocConfig.ConfigureContainer();

                //Configure LogProvider
                //Quartz.Logging.LogProvider.SetCurrentLogProvider(new Logging.NLogProvider());
                Quartz.Logging.LogProvider.SetCurrentLogProvider(new Logging.ConsoleLogProvider());

                //StdSchedulerFactory factory = new StdSchedulerFactory();
                ISchedulerFactory factory = container.Resolve <ISchedulerFactory>();
                scheduler = await factory.GetScheduler();

                //Start scheduler
                await scheduler.Start();

                //Get All Jobs
                var lstJobs = JobFactory.GetAllJobs();

                foreach (var jobItem in lstJobs)
                {
                    //Define the job
                    IJobDetail job = JobBuilder.Create(jobItem.JobType)
                                     .WithIdentity(jobItem.Name, "groupTools")
                                     .Build();

                    //Trigger the job to run now, and then repeat by Interval
                    ITrigger trigger = null;
                    if (jobItem.Interval != 0)
                    {
                        trigger = TriggerBuilder.Create()
                                  .WithIdentity("trigger" + jobItem.Number, "groupTools")
                                  .StartNow()
                                  .WithSimpleSchedule(x => x
                                                      .WithIntervalInSeconds(jobItem.Interval)
                                                      .RepeatForever())
                                  .Build();
                    }
                    else
                    {
                        trigger = TriggerBuilder.Create()
                                  .WithIdentity("trigger" + jobItem.Number, "groupTools")
                                  .StartNow()
                                  .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(jobItem.DailyAtHour, jobItem.DailyAtMinute))
                                  .Build();
                    }

                    //Tell quartz to schedule the job using our trigger
                    await scheduler.ScheduleJob(job, trigger);
                }
            }
            catch (SchedulerException se)
            {
                Console.WriteLine(se);
            }

            Logger.Info("Service Started");
        }
        private void loadList()
        {
            try
            {
                dept = DepartmentFactory.DepartmentCreateList();

                cmbDepartmentModify.DataSource    = dept;
                cmbDepartmentModify.DisplayMember = "DepartmentName";
                cmbDepartmentModify.ValueMember   = "DepartmentID";

                job = JobFactory.JobsCreateList();

                cmbJobAssignmentModify.DataSource    = job;
                cmbJobAssignmentModify.DisplayMember = "jobTitle";
                cmbJobAssignmentModify.ValueMember   = "jobId";



                cmbEmpStatusModify.DataSource = Enum.GetValues(typeof(EmpStatus));
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex);
            }
        }
Пример #11
0
        public override async Task Execute(DeploymentManifestSourceTrackingContext context)
        {
            var repository = context.DeploymentManifest.Repository;

            _log.LogInformation("Checkout repository containing application declaration");
            await _deploymentManifestRepositoryService.Checkout(repository, true);

            _log.LogInformation("Starting sync-job for {Repository} in {Path}",
                                repository.Uri,
                                repository.GetCheckoutDirectory()
                                );

            var job = JobFactory.BuildJobWithData <GitRepositorySyncJob, DeploymentManifestSourceTrackingContext>(
                $"gitwatch-{context.ApplicationName}",
                Constants.SchedulerGroup,
                context
                );

            var trigger = TriggerBuilder.Create()
                          .WithIdentity($"gitwatch-trig-{context.ApplicationName}", Constants.SchedulerGroup)
                          .StartNow()
                          .WithSimpleSchedule(x => x
                                              .WithIntervalInSeconds(10)
                                              .RepeatForever()
                                              )
                          .ForJob(job)
                          .Build();

            await _scheduler.ScheduleJob(job, trigger);
        }
Пример #12
0
 public Executioner(JobFactory jobFactory,
                    EmployeeFactory employeeFactory, IWriter writer)
 {
     this.jobFactory      = jobFactory;
     this.employeeFactory = employeeFactory;
     this.writer          = writer;
 }
Пример #13
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            StartupIoC.RegisterIoC(_locator);

            // make sure we're able to do work
            _worker        = new WorkerRegistrationController(_locator).EnsureWorkerRegistration();
            _jobRepository = _locator.Locate <IJobRepository>();
            _presenter     = new WorkloadPresenter(new WorkloadView());

            var poller = new JobPoller(_presenter, _locator, _worker);

            if (_worker.CurrentJob != Guid.Empty)
            {
                // start working on the job
                _presenter.CurrentJob = JobFactory.CreateJob(_jobRepository.GetCurrentJob(_worker.Id), _worker, _locator);
            }

            poller.Start();

            try
            {
                Application.Run((WorkloadView)_presenter.View);
            }
            finally
            {
                poller.Stop();
            }
        }
Пример #14
0
        private void Run()
        {
            while (!_stop)
            {
                // Wait the specified interval before checking again...
                if (_presenter.CurrentJob == null)
                {
                    var desc = _jobRepository.GetNextJob(_worker.Id);
                    if (desc != null)
                    {
                        _worker.CurrentJob = desc.Id;

                        // TODO: change this so that it happens automatically when CurrentJob is set on the workerstate
                        _presenter.CurrentJob = JobFactory.CreateJob(desc, _worker, _serviceLocator);
                    }
                }

                Thread.Sleep(_interval);
            }

            try
            {
                _thread.Abort();
            }
            catch (ThreadAbortException tae)
            {
            }
            finally
            {
                _thread = null;
            }
        }
Пример #15
0
        public MainGameScreen(Renderer renderer, ContentManager contentManager, string mapPathToLoad)
            : base(contentManager)
        {
            if (renderer == null)
            {
                throw new ArgumentNullException("renderer");
            }
            if (contentManager == null)
            {
                throw new ArgumentNullException("contentManager");
            }
            if (String.IsNullOrEmpty(mapPathToLoad))
            {
                throw new ArgumentNullException("mapPathToLoad");
            }

            simulationManager = new SimulationManager(DateTime.Now, contentManager.ThoughtPool);
            jobFactory        = new JobFactory(contentManager);
            agentFactory      = new AgentFactory(renderer, contentManager, jobFactory);
            roomFactory       = new RoomFactory(renderer, contentManager);

            simulationManager.HadThought += HandleEmployeeHadThought;
            simulationManager.EmployeeThirstSatisfied += HandleEmployeeThirstSatisfied;
            simulationManager.EmployeeHungerSatisfied += HandleEmployeeHungerSatisfied;

            this.mapPathToLoad = mapPathToLoad;
        }
Пример #16
0
        private async Task ConfigureScheduler()
        {
            var jobFactory = new JobFactory(ServiceProvider);

            var        schedulerFactory = new StdSchedulerFactory();
            IScheduler scheduler        = await schedulerFactory.GetScheduler();

            scheduler.JobFactory = jobFactory; // Use our DI container to create the Job

            await scheduler.Start();

            IJobDetail job = JobBuilder.Create <AfterLunchJob>()
                             .WithIdentity(nameof(AfterLunchJob), "Lunch Bot")
                             .Build();

            // Trigger the job every Friday sometime after Lunch  ....say 3:00
            var onFriday = DailyTimeIntervalScheduleBuilder.Create()
                           .OnDaysOfTheWeek(new DayOfWeek[] { DayOfWeek.Friday });

            ITrigger trigger = TriggerBuilder.Create()
                               .WithIdentity(nameof(onFriday), "Lunch Bot")
                               .WithSchedule(onFriday)
                               .Build();

            // Tell quartz to schedule the job using our trigger
            await scheduler.ScheduleJob(job, trigger);
        }
Пример #17
0
        /// <summary>
        ///     Create a workflow based on the job and settings objects provided. This will create an AutoSave workflow if the
        ///     job's printer has an AutoSave profile associated or the default profile uses AutoSave.
        ///     Otherwise, an interactive workflow will be created.
        ///     基于提供的作业和设置对象创建工作流。如果作业的打印机关联了自动保存配置文件或默认配置文件使用自动保存,
        ///     则此操作将创建自动保存工作流。否则,将创建交互式工作流。
        /// </summary>
        /// <param name="jobInfo">The jobinfo used for the decision</param>
        /// <param name="settings">The settings used for the decision</param>
        /// <returns>A ConversionWorkflow either for AutoSave or interactive use</returns>
        public static ConversionWorkflow CreateWorkflow(IJobInfo jobInfo, clawPDFSettings settings)
        {
            Logger.Trace("Creating Workflow");

            var preselectedProfile = PreselectedProfile(jobInfo, settings).Copy();

            Logger.Debug("Profile: {0} (GUID {1})", preselectedProfile.Name, preselectedProfile.Guid);

            var jobTranslations = new JobTranslations();

            jobTranslations.EmailSignature = MailSignatureHelper.ComposeMailSignature();

            var job = JobFactory.CreateJob(jobInfo, preselectedProfile, JobInfoQueue.Instance, jobTranslations);

            job.AutoCleanUp = true;


            if (preselectedProfile.AutoSave.Enabled)
            {
                Logger.Trace("Creating AutoSaveWorkflow");
                return(new AutoSaveWorkflow(job, settings));
            }

            Logger.Trace("Creating InteractiveWorkflow");
            return(new InteractiveWorkflow(job, settings));
        }
Пример #18
0
        /// <summary>
        /// Register a job for a calendar event as specified by the <paramref name="predicate"/>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="predicate">Predicate filter calendar events.</param>
        /// <param name="factory">Factory for creating job after a match has been found.</param>
        /// <param name="job">Job method that will be ran when event starts.</param>
        public Task RegisterEvent <T>(EventPredicate predicate, JobFactory factory, Job <T> job) where T : IJob
        {
            jobPredicates.Add(predicate);
            jobFactories.Add(factory);

            return(JobModule.RegisterJobAsync(job));
        }
Пример #19
0
 private void InitializeJobs()
 {
     _jobFactory    = new JobFactory();
     _jobConverter  = new JobConverter(_jobFactory, _skillConverter, _toolConverter, _zoneConverter);
     _jobs          = new ConcurrentDictionary <int, IJob>();
     _activitiesMap = new ConcurrentDictionary <int, IActivity>();
     _scheduledJobs = new ConcurrentDictionary <Guid, IActivitySchedule>();
 }
Пример #20
0
        public void OneTimeSetup()
        {
            queue = client.GetQueueReference("producertest");

            factory = new JobFactory();
            factory.RegisterJobType(typeof(HelloWho));
            factory.RegisterJobType(typeof(MockJob));
        }
Пример #21
0
        public void Setup()
        {
            factory = new JobFactory();

            factory.RegisterJobType(typeof(HelloWho));
            factory.RegisterJobType(typeof(MockJob));
            factory.RegisterJobType(typeof(NoopJob));
        }
Пример #22
0
 public MainSimulator(List <IBot> bots, ISimulationRunner simulationRunner, JobFactory jobFactory)
 {
     Bots             = bots;
     SimulationRunner = simulationRunner;
     _assignedBots    = new List <Bot>();
     JobFactory       = jobFactory;
     CreateBotCharacters(bots);
 }
Пример #23
0
        public void OneTimeSetup()
        {
            queue = client.GetQueueReference("producertest");

            factory = new JobFactory();
            factory.RegisterJobType(typeof(HelloWho));
            factory.RegisterJobType(typeof(MockJob));
        }
        public void Given_work_item()
        {
            var definition = JobFactory.Interval("Foo1", () =>
            {
                return(Task.Factory.StartNew(() => Console.WriteLine("Foo1")));
            }, TimeSpan.FromMinutes(10));

            _item = new JobItem(new DefaultSchedulerContext(), definition, null);
        }
Пример #25
0
        private async Task Start(JobEntity jobView)
        {
            var jobRuntime = await JobFactory.CreateJobRuntime(_serviceRoute, jobView);

            JobDataMap map = new JobDataMap
            {
                new KeyValuePair <string, object> ("JobRuntime", jobRuntime)
            };

            IJobDetail job = JobBuilder.Create().OfType(typeof(JobImplementation)).WithIdentity(jobView.Id).UsingJobData(map).Build();

            _scheduler.ListenerManager.AddJobListener(new JobListener(jobView.Id, JobWasExecuteCallBack), KeyMatcher <JobKey> .KeyEquals(new JobKey(jobView.Id)));

            if (!jobView.IsSimple)
            {
                if (!ValidExpression(jobView.CronExpression))
                {
                    throw new Exception("cron表达式验证失败");
                }
                var trigger = new CronTriggerImpl
                {
                    CronExpressionString = jobView.CronExpression,
                    Name        = jobView.Name,
                    Key         = new TriggerKey(jobView.Id),
                    Description = jobView.Remark
                };
                if (jobView.StartTime.HasValue)
                {
                    trigger.StartTimeUtc = Utils.ConvertToDateTimeOffset(jobView.StartTime.Value);
                }
                if (jobView.EndTime.HasValue)
                {
                    trigger.EndTimeUtc = Utils.ConvertToDateTimeOffset(jobView.EndTime.Value);
                }
                await _scheduler.ScheduleJob(job, trigger);
            }
            else
            {
                var triggerBuilder = TriggerBuilder.Create().WithIdentity(jobView.Id).WithSimpleSchedule(x => x.WithRepeatCount(jobView.RepeatCount).WithInterval(TimeSpan.FromSeconds(jobView.IntervalSeconds)));

                if (jobView.StartTime.HasValue)
                {
                    var start = Utils.ConvertToDateTimeOffset(jobView.StartTime.Value);
                    triggerBuilder = triggerBuilder.StartAt(start);
                }
                if (jobView.EndTime.HasValue)
                {
                    var end = Utils.ConvertToDateTimeOffset(jobView.EndTime.Value);
                    triggerBuilder = triggerBuilder.EndAt(end);
                }

                var trigger = triggerBuilder.Build();
                await _scheduler.ScheduleJob(job, trigger);
            }

            _logger.Info($"job [{jobView.Id}]{jobView.Name} start success");
        }
Пример #26
0
        public static JobItem Create(ISchedulerContext ctx)
        {
            var definition = JobFactory.Interval("Foo1", () =>
            {
                return(Task.Factory.StartNew(() => Console.WriteLine("Foo1")));
            }, TimeSpan.FromMinutes(10), "Some");

            return(new InlineScheduler.Advanced.JobItemFactory(ctx).Create(definition));
        }
Пример #27
0
        public static async void UseQuartz(this IApplicationBuilder app)
        {
            IScheduler scheduler = app.ApplicationServices.GetService <IScheduler>();

            var jobFactory = new JobFactory(app.ApplicationServices);

            scheduler.JobFactory = jobFactory;

            await scheduler.Start();
        }
Пример #28
0
        public override void Execute(string[] commandParams, IRepository repository)
        {
            var jobName  = commandParams[1];
            var jobHours = int.Parse(commandParams[2]);
            var employee = repository.GetEmployee(commandParams[3]);

            var job = JobFactory.CreateJob(jobName, jobHours, employee);

            repository.AddJob(jobName, job);
        }
Пример #29
0
        static void Main(string[] args)
        {
            IOffice          office          = new Office();
            IEmployeeFactory employeeFactory = new EmployeeFactory();
            IJobFactory      jobFactory      = new JobFactory();

            IRunnable engine = new Engine(office, employeeFactory, jobFactory);

            engine.Run();
        }
Пример #30
0
        /// <summary>
        /// 初始化
        /// 包括 定时器的初始化 作业的初始化 配置的初始化
        /// </summary>
        internal void Init()
        {
            #region 清空
            if (mainTimer != null)
            {
                mainTimer.Stop();
                mainTimer.Elapsed -= MainTimer_Elapsed;
                mainTimer.Dispose();
                mainTimer = null;
            }
            mainTimer = new Timer
            {
                Interval = 1000,
                Enabled  = false,
            };

            if (taskModelList != null)
            {
                foreach (BaseJob item in taskModelList)
                {
                    item.Dispose();
                }
            }
            if (taskCollection != null)
            {
                foreach (Task item in taskCollection)
                {
                    item.Dispose();
                }
            }
            #endregion

            ReadConfig readConfig = new ReadConfig();
            //判断是否有异常
            if (readConfig.IsException)
            {
                return;
            }
            GlobalObject.RichTextLog.AppendTextByAsync("配置加载完成!", Color.Black);
            BaseJob model = null;
            //根据配置数量进行初始化作业
            foreach (SourceConfig item in readConfig._SourceConfig)
            {
                foreach (TableConfig tableConfig in item.TableConfigList)
                {
                    model = JobFactory.CreateJob(tableConfig);
                    model.InitTask();
                    taskModelList.Add(model);
                }
            }

            GlobalObject.RichTextLog.AppendTextByAsync("任务初始化完成!", Color.Black);

            mainTimer.Elapsed += MainTimer_Elapsed;
        }
Пример #31
0
        public void OneTimeSetup()
        {
            CloudQueueClient client = StorageAccount.Get().CreateCloudQueueClient();

            queue = client.GetQueueReference("jobexecutioncontexttest");
            queue.CreateIfNotExists();

            factory = new JobFactory();
            factory.RegisterJobType(typeof(HelloWho));
            factory.RegisterJobType(typeof(MockJob));
        }
        public SolverDataManager(ProjectDataSet model, ConstraintSolverResult data)
        {
            _model = model;
            _solverResult = data;

            var jobFactory = new JobFactory();
            var skillFactory = new SkillFactory();
            var workerFactory = new WorkerFactory();
            var toolFactory = new ToolFactory();
            var zoneFactory = new ZoneFactory();
            var shiftFactory = new ShiftFactory();
            
            var shiftConverter = new ShiftConverter(shiftFactory);
            var skillConverter = new SkillConverter(skillFactory);
            var toolConverter = new ToolConverter(toolFactory, shiftConverter);
            var zoneConverter = new ZoneConverter(zoneFactory);
            var laborConverter = new LaborConverter(workerFactory, shiftConverter, skillConverter);
            var jobConverter = new JobConverter(jobFactory, skillConverter, toolConverter, zoneConverter);

            _shiftManager = new ShiftManager(shiftConverter, skillConverter, laborConverter, toolConverter);
            _jobManager = new JobManager(jobConverter);
            _zoneManager = new ZoneManager(zoneConverter);
        }
 private void InitializeJobs()
 {
     _jobFactory = new JobFactory();
     _jobConverter = new JobConverter(_jobFactory, _skillConverter, _toolConverter, _zoneConverter);
     _jobs = new ConcurrentDictionary<int, IJob>();
     _activitiesMap = new ConcurrentDictionary<int, IActivity>();
     _scheduledJobs = new ConcurrentDictionary<Guid, IActivitySchedule>();
 }
Пример #34
0
        /// <summary>
        /// Call once during application start up.
        /// </summary>
        /// <returns>A list of executable jobs, or Null if no plug-ins were found.</returns>
        public List<iJob> Initialize()
        {
            List<iJob> jobs = new List<iJob>();

            foreach (iPluginFactory factory in _plugins)
            {
                try
                {
                    string name = factory.GetType().Module.Assembly.GetName().Name.Replace(".plugin", "");

                    PluginSettings settings = _storage.Find(factory.getID());
                    JobFactory jobFactory = new JobFactory(name, settings);
                    factory.StartUp(settings);
                    factory.Create(jobFactory, settings);
                    jobs.AddRange(jobFactory.Jobs.Values);
                }
                catch (Exception e)
                {
                    _logger.Exception(e);
                    factory.ShutDown();
                }
            }

            return jobs;
        }
Пример #35
0
        public void OneTimeSetup()
        {
            CloudQueueClient client = CloudStorageAccount.DevelopmentStorageAccount.CreateCloudQueueClient();

            queue = client.GetQueueReference("jobexecutioncontexttest");
            queue.CreateIfNotExists();

            factory = new JobFactory();
            factory.RegisterJobType(typeof(HelloWho));
            factory.RegisterJobType(typeof(MockJob));
        }
Пример #36
0
 public void OneTimeSetup()
 {
     factory = new JobFactory();
     factory.RegisterJobType(typeof(HelloWho));
     factory.RegisterJobType(typeof(MockJob));
 }