public Schedule CreateSchedule(string automationAccountName, OneTimeSchedule schedule)
        {
            this.ValidateScheduleName(automationAccountName, schedule.Name);

            var scheduleModel = new AutomationManagement.Models.Schedule
            {
                Name         = schedule.Name,
                StartTime    = schedule.StartTime.ToUniversalTime(),
                ExpiryTime   = schedule.ExpiryTime.ToUniversalTime(),
                Description  = schedule.Description,
                ScheduleType =
                    AutomationManagement.Models.ScheduleType
                    .OneTimeSchedule
            };

            var scheduleCreateParameters = new AutomationManagement.Models.ScheduleCreateParameters
            {
                Schedule = scheduleModel
            };

            var scheduleCreateResponse = this.automationManagementClient.Schedules.Create(
                automationAccountName,
                scheduleCreateParameters);

            return(this.GetSchedule(automationAccountName, new Guid(scheduleCreateResponse.Schedule.Id)));
        }
Exemple #2
0
        private void Test(object sender, System.EventArgs e)
        {
            MessageBox.Show("Test will now create all types of schedules and opens Schedules View");

            // create and add different types of schedules
            Schedule s = new IntervalSchedule("Test_Interval", DateTime.Now.AddMinutes(1), 45, TimeSpan.Zero, new TimeSpan(TimeSpan.TicksPerDay));

            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);
            s            = new OneTimeSchedule("Test_Onetime", DateTime.Now.AddMinutes(1.5));
            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);
            s            = new DailySchedule("Test_daily", DateTime.Now.AddMinutes(2));
            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);
            s            = new WeeklySchedule("Test_weekly", DateTime.Now.AddMinutes(2.5));
            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);
            s            = new MonthlySchedule("Test_monthly", DateTime.Now.AddMinutes(3));
            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);

            // kick off the Schedules View
            SchedulerUI.ShowSchedules();
        }
Exemple #3
0
        private void buttonDelayButton_Click(object sender, EventArgs e)
        {
            MarconiRaceControllerLogic rcl = oblist.SelectedObject as MarconiRaceControllerLogic;

            if (rcl == null)
            {
                return;
            }


            foreach (var item in _raceQueue.Where(p => p.RaceScheduledStartTime >= DateTime.Now && p.RaceScheduledStartTime >= rcl.RaceScheduledStartTime).ToList())
            {
                item.RaceScheduledStartTime = item.RaceScheduledStartTime.AddMinutes(5);

                var sched = Scheduler.GetSchedule(item.RaceName);

                Scheduler.RemoveSchedule(item.RaceName);

                OneTimeSchedule sc = new OneTimeSchedule(item.RaceName, item.RaceScheduledStartTime);
                sc.OnTrigger += Sc_OnTrigger;

                Scheduler.AddSchedule(sc);
            }

            oblist.SetObjects(_raceQueue, true);
            buttonDelayButton.Enabled = false;
        }
        protected override void AutomationExecuteCmdlet()
        {
            // Assume local time if DateTimeKind.Unspecified
            if (this.StartTime.Kind == DateTimeKind.Unspecified)
            {
                this.StartTime = DateTime.SpecifyKind(this.StartTime, DateTimeKind.Local);
            }

            if (this.ExpiryTime.Kind == DateTimeKind.Unspecified)
            {
                this.ExpiryTime = DateTime.SpecifyKind(this.ExpiryTime, DateTimeKind.Local);
            }

            if (this.OneTime.IsPresent)
            {
                // ByOneTime
                var oneTimeSchedule = new OneTimeSchedule
                {
                    Name        = this.Name,
                    StartTime   = this.StartTime,
                    Description = this.Description,
                    ExpiryTime  = this.ExpiryTime
                };

                Schedule schedule = this.AutomationClient.CreateSchedule(this.AutomationAccountName, oneTimeSchedule);
                this.WriteObject(schedule);
            }
            else if (this.DayInterval >= 1)
            {
                // ByDaily
                var dailySchedule = new DailySchedule
                {
                    Name        = this.Name,
                    StartTime   = this.StartTime,
                    DayInterval = this.DayInterval,
                    Description = this.Description,
                    ExpiryTime  = this.ExpiryTime
                };

                Schedule schedule = this.AutomationClient.CreateSchedule(this.AutomationAccountName, dailySchedule);
                this.WriteObject(schedule);
            }
            else if (this.HourInterval >= 1)
            {
                // ByHourly
                var hourlySchedule = new HourlySchedule
                {
                    Name         = this.Name,
                    StartTime    = this.StartTime,
                    HourInterval = this.HourInterval,
                    Description  = this.Description,
                    ExpiryTime   = this.ExpiryTime
                };

                Schedule schedule = this.AutomationClient.CreateSchedule(this.AutomationAccountName, hourlySchedule);
                this.WriteObject(schedule);
            }
        }
Exemple #5
0
        public void MisfireTriggerTest()
        {
            Debug.WriteLine("------- Scheduling Jobs -------------------");

            var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset);

            // Set the job run time.
            DateTime rangeStart  = DateTime.UtcNow;
            DateTime runTime     = rangeStart.AddSeconds(1);
            var      runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero);

            // Define the job and tie it to our HelloJob class.
            JobDataMap jobDataMap = new JobDataMap((IDictionary <string, object>) new Dictionary <string, object> {
                { "SemHandle", semHandle }
            });

            IJobDetail job = JobBuilder.Create <HelloJob>()
                             .WithDescription("job1")
                             .WithIdentity("job1", "group1")
                             .UsingJobData(jobDataMap)
                             .Build();

            // Trigger the job to run on the set time.
            var trigger = TriggerBuilder.Create()
                          .WithIdentity("trigger1", "group1")
                          .WithItinerarySchedule(runSchedule, rangeStart, x => x.WithMisfireHandlingInstructionFireAndProceed())
                          .Build();

            // Tell Quartz to schedule the job using our trigger.
            sched.ScheduleJob(job, trigger);
            var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First();

            Debug.WriteLine(string.Format("{0} will start at: {1}", job.Description, firstEvent.StartTime.ToString("r")));

            // Start up the scheduler.
            sched.Start();
            Debug.WriteLine("------- Started Scheduler -----------------");

            // Wait long enough so that the scheduler as an opportunity to
            // run the job.
            Debug.WriteLine("------- PauseAll(), wait 4s -------------");

            sched.PauseAll();
            Thread.Sleep(4000);
            Debug.WriteLine("------- ResumeAll(), expect job to run immediately -------------");
            sched.ResumeAll();

            // TODO: What does it take to get Quartz to drop a trigger event?
            Debug.WriteLine("------- Waiting a few seconds... -------------");
            Assert.IsTrue(semHandle.WaitOne(5000));
        }
Exemple #6
0
        public void OneTimeScheduleTriggerTest()
        {
            Debug.WriteLine("------- Scheduling Jobs -------------------");

            var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset);

            // Set the job run time.
            DateTime rangeStart  = DateTime.UtcNow;
            DateTime runTime     = rangeStart.AddSeconds(1);
            var      runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero);

            // Define the job and tie it to our HelloJob class.
            JobDataMap jobDataMap = new JobDataMap((IDictionary <string, object>) new Dictionary <string, object> {
                { "SemHandle", semHandle }
            });

            IJobDetail job = JobBuilder.Create <HelloJob>()
                             .WithDescription("job1")
                             .WithIdentity("job1", "group1")
                             .UsingJobData(jobDataMap)
                             .Build();

            // Trigger the job to run on the set time.
            ITrigger trigger = TriggerBuilder.Create()
                               .WithIdentity("trigger1", "group1")
                               .WithItinerarySchedule(runSchedule, rangeStart)
                               .Build();

            // Tell Quartz to schedule the job using our trigger.
            sched.ScheduleJob(job, trigger);
            var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First();

            Debug.WriteLine(string.Format("{0} will start at: {1}", job.Description, firstEvent.StartTime.ToString("r")));

            // Start up the scheduler.
            sched.Start();
            Debug.WriteLine("------- Started Scheduler -----------------");

            // Wait long enough so that the scheduler as an opportunity to
            // run the job.
            Debug.WriteLine("------- Waiting a few seconds... -------------");

            // Wait for job to signal.
            Assert.IsTrue(semHandle.WaitOne(5000));
        }
Exemple #7
0
        //Start the application, creates each race.
        private void btStartRace_Click(object sender, EventArgs e)
        {
            if (dateTimePicker1.Value <= DateTime.Now.AddSeconds(10))
            {
                DialogResult dialogResult = MessageBox.Show("The time of the first date is too soon or in the past. Select a valid time for the first race", "WARNING", MessageBoxButtons.OK);
                return;
            }
            panelStart.Visible = false;
            panel1.Visible     = true;
            AllLightsOff();

            int      _races         = int.Parse(this.textBox1.Text);
            DateTime _lastStartTime = dateTimePicker1.Value;


            panelButtons.Visible = true;
            panelRaces.Visible   = true;

            for (int x = 1; x <= _races; x++)
            {
                MarconiRaceControllerLogic _newRace = new MarconiRaceControllerLogic();

                _newRace.RaceName = "Race " + x.ToString();
                _newRace.RaceScheduledStartTime = _lastStartTime;

                _newRace.BoardDriver    = relayBoard;
                _newRace.InternalPlayer = _soundPlayer;



                OneTimeSchedule sc = new OneTimeSchedule("Race " + x.ToString(), _lastStartTime);
                sc.OnTrigger += Sc_OnTrigger;

                _raceQueue.Add(_newRace);
                Scheduler.AddSchedule(sc);

                _lastStartTime = _lastStartTime.AddMinutes(6);
            }
            oblist.SetObjects(_raceQueue, true);
        }
        public void MisfireTriggerTest()
        {
            Debug.WriteLine("------- Scheduling Jobs -------------------");

             var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset);

             // Set the job run time.
             DateTime rangeStart = DateTime.UtcNow;
             DateTime runTime = rangeStart.AddSeconds(1);
             var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero);

             // Define the job and tie it to our HelloJob class.
             JobDetail job = new JobDetail("job1", "group1", typeof(HelloJob));
             job.JobDataMap["SemHandle"] = semHandle;

             // Trigger the job to run on the set time.
             var trigger = new ItineraryTrigger("trigger1", "group1", runSchedule, rangeStart);
             trigger.MisfireInstruction = ItineraryTriggerMisfireInstruction.RescheduleNowWithExistingCount;

             // Tell Quartz to schedule the job using our trigger.
             sched.ScheduleJob(job, trigger);
             var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First();
             Debug.WriteLine(string.Format("{0} will start at: {1}", job.FullName, firstEvent.StartTime.ToString("r")));

             // Start up the scheduler.
             sched.Start();
             Debug.WriteLine("------- Started Scheduler -----------------");

             // Wait long enough so that the scheduler as an opportunity to
             // run the job.
             Debug.WriteLine("------- PauseAll(), wait 4s -------------");

             sched.PauseAll();
             Thread.Sleep(4000);
             Debug.WriteLine("------- ResumeAll(), expect job to run immediately -------------");
             sched.ResumeAll();

             // TODO: What does it take to get Quartz to drop a trigger event?
             Debug.WriteLine("------- Waiting a few seconds... -------------");
             Assert.IsTrue(semHandle.WaitOne(5000));
        }
        public void OneTimeScheduleTriggerTest()
        {
            Debug.WriteLine("------- Scheduling Jobs -------------------");

             var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset);

             // Set the job run time.
             DateTime rangeStart = DateTime.UtcNow;
             DateTime runTime = rangeStart.AddSeconds(1);
             var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero);

             // Define the job and tie it to our HelloJob class.
             JobDetail job = new JobDetail("job1", "group1", typeof(HelloJob));
             job.JobDataMap["SemHandle"] = semHandle;

             // Trigger the job to run on the set time.
             var trigger = new ItineraryTrigger("trigger1", "group1", runSchedule, rangeStart);

             // Tell Quartz to schedule the job using our trigger.
             sched.ScheduleJob(job, trigger);
             var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First();
             Debug.WriteLine(string.Format("{0} will start at: {1}", job.FullName, firstEvent.StartTime.ToString("r")));

             // Start up the scheduler.
             sched.Start();
             Debug.WriteLine("------- Started Scheduler -----------------");

             // Wait long enough so that the scheduler as an opportunity to
             // run the job.
             Debug.WriteLine("------- Waiting a few seconds... -------------");

             // Wait for job to signal.
             Assert.IsTrue(semHandle.WaitOne(5000));
        }
Exemple #10
0
 public static OneTimeSchedule CreateOneTimeSchedule(global::System.Guid scheduleID, global::System.Guid tenantID, string name, global::System.DateTime startTime, global::System.DateTime creationTime, global::System.DateTime lastModifiedTime, bool isEnabled)
 {
     OneTimeSchedule oneTimeSchedule = new OneTimeSchedule();
     oneTimeSchedule.ScheduleID = scheduleID;
     oneTimeSchedule.TenantID = tenantID;
     oneTimeSchedule.Name = name;
     oneTimeSchedule.StartTime = startTime;
     oneTimeSchedule.CreationTime = creationTime;
     oneTimeSchedule.LastModifiedTime = lastModifiedTime;
     oneTimeSchedule.IsEnabled = isEnabled;
     return oneTimeSchedule;
 }
        public void MisfireTriggerTest()
        {
            Debug.WriteLine("------- Scheduling Jobs -------------------");

             var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset);

             // Set the job run time.
             DateTime rangeStart = DateTime.UtcNow;
             DateTime runTime = rangeStart.AddSeconds(1);
             var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero);

             // Define the job and tie it to our HelloJob class.
             JobDataMap jobDataMap = new JobDataMap((IDictionary<string, object>)new Dictionary<string, object> {
            { "SemHandle", semHandle }
             });

             IJobDetail job = JobBuilder.Create<HelloJob>()
            .WithDescription("job1")
            .WithIdentity("job1", "group1")
            .UsingJobData(jobDataMap)
            .Build();

             // Trigger the job to run on the set time.
             var trigger = TriggerBuilder.Create()
            .WithIdentity("trigger1", "group1")
            .WithItinerarySchedule(runSchedule, rangeStart, x => x.WithMisfireHandlingInstructionFireAndProceed())
            .Build();

             // Tell Quartz to schedule the job using our trigger.
             sched.ScheduleJob(job, trigger);
             var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First();
             Debug.WriteLine(string.Format("{0} will start at: {1}", job.Description, firstEvent.StartTime.ToString("r")));

             // Start up the scheduler.
             sched.Start();
             Debug.WriteLine("------- Started Scheduler -----------------");

             // Wait long enough so that the scheduler as an opportunity to
             // run the job.
             Debug.WriteLine("------- PauseAll(), wait 4s -------------");

             sched.PauseAll();
             Thread.Sleep(4000);
             Debug.WriteLine("------- ResumeAll(), expect job to run immediately -------------");
             sched.ResumeAll();

             // TODO: What does it take to get Quartz to drop a trigger event?
             Debug.WriteLine("------- Waiting a few seconds... -------------");
             Assert.IsTrue(semHandle.WaitOne(5000));
        }
        public void OneTimeScheduleTriggerTest()
        {
            Debug.WriteLine("------- Scheduling Jobs -------------------");

             var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset);

             // Set the job run time.
             DateTime rangeStart = DateTime.UtcNow;
             DateTime runTime = rangeStart.AddSeconds(1);
             var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero);

             // Define the job and tie it to our HelloJob class.
             JobDataMap jobDataMap = new JobDataMap((IDictionary<string, object>)new Dictionary<string, object> {
            { "SemHandle", semHandle }
             });

             IJobDetail job = JobBuilder.Create<HelloJob>()
            .WithDescription("job1")
            .WithIdentity("job1", "group1")
            .UsingJobData(jobDataMap)
            .Build();

             // Trigger the job to run on the set time.
             ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity("trigger1", "group1")
            .WithItinerarySchedule(runSchedule, rangeStart)
            .Build();

             // Tell Quartz to schedule the job using our trigger.
             sched.ScheduleJob(job, trigger);
             var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First();
             Debug.WriteLine(string.Format("{0} will start at: {1}", job.Description, firstEvent.StartTime.ToString("r")));

             // Start up the scheduler.
             sched.Start();
             Debug.WriteLine("------- Started Scheduler -----------------");

             // Wait long enough so that the scheduler as an opportunity to
             // run the job.
             Debug.WriteLine("------- Waiting a few seconds... -------------");

             // Wait for job to signal.
             Assert.IsTrue(semHandle.WaitOne(5000));
        }
Exemple #13
0
 public bool AddSchedule(OneTimeSchedule schedule)
 {
     _context.OneTimeSchedules.Add(schedule);
     return(_context.SaveChanges() == 0);
 }
Exemple #14
0
 public bool RemoveSchedule(OneTimeSchedule schedule)
 {
     _context.OneTimeSchedules.Remove(schedule);
     return(_context.SaveChanges() == 0);
 }
        private static void zConfigureOneTimeSchedule(List <TriggerBuilder> triggerBuilderList, OneTimeSchedule schedule)
        {
            SimpleScheduleBuilder sb = zCreateSimpleSchedule(schedule)
                                       .WithRepeatCount(0);

            triggerBuilderList.Add(TriggerBuilder.Create().WithSchedule(sb));
        }