Example #1
0
        public bool ScheduleJob(IJob job)
        {
            if (_inProcessTools.ContainsKey(job))
            {
                return(false);
            }

            var tools = new HashSet <IToolInstance>();

            _inProcessTools.Add(job, tools);
            var toolSchedules = new HashSet <IScheduledTool>();

            _inProcessToolSchedules.Add(job, toolSchedules);

            foreach (var tool in job.RequiredToolSet)
            {
                var next = GetNextTool(tool);
                if (next == null)
                {
                    return(false);
                }
                tools.Add(next);
                var scheduledTool = new ScheduledTool(next, job.ScheduledStartTime, job.ScheduledEndTime, job);
                toolSchedules.Add(scheduledTool);
                _inProcessJobs.Add(next, job);
                _toolAvailableStates[tool][next.ID] = false;
            }
            return(true);
        }
        public bool ScheduleJob(IJob job)
        {
            if (_inProcessTools.ContainsKey(job)) return false;

            var tools = new HashSet<IToolInstance>();
            _inProcessTools.Add(job, tools);
            var toolSchedules = new HashSet<IScheduledTool>();
            _inProcessToolSchedules.Add(job, toolSchedules);

            foreach (var tool in job.RequiredToolSet)
            {
                var next = GetNextTool(tool);
                if (next == null) return false;
                tools.Add(next);
                var scheduledTool = new ScheduledTool(next, job.ScheduledStartTime, job.ScheduledEndTime, job);
                toolSchedules.Add(scheduledTool);
                _inProcessJobs.Add(next, job);
                _toolAvailableStates[tool][next.ID] = false;
            }
            return true;
        }