/// <summary> /// Creates a job type of job. /// Sends job to scheduler. /// </summary> /// <param name="ao_jobdetail"></param> /// <param name="args"></param> /// <returns></returns> public static bool AddJob(Job ao_jobdetail, string[] args = null) { try { IJob lo_job; if (ao_jobdetail.tasktype.Equals(JobType.FitBit)) { lo_job = new FitBitJob(ao_jobdetail.id); } else if (ao_jobdetail.tasktype.Equals(JobType.JawBone)) { lo_job = new JawBoneJob(); } else if (ao_jobdetail.tasktype.Equals(JobType.Challenge)) { lo_job = new ChallengeJob(); } else { lo_job = new EmailJob(); } IScheduler lo_scheduler = SchedulerFactory.Instance().GetScheduler(); if (ao_jobdetail.schedtype.Equals(ScheduleType.Repeating)) { lo_scheduler.CreateRecurringJob(ao_jobdetail.id, () => lo_job.Run(args), ao_jobdetail.minutes); } else { if (ao_jobdetail.date != null) { ao_jobdetail.secretid = lo_scheduler.CreateOnceJob(() => lo_job.Run(args), ao_jobdetail.date); } else { ao_jobdetail.secretid = lo_scheduler.CreateOnceJob(() => lo_job.Run(args), ao_jobdetail.minutes); } } return true; } catch (Exception e) { Debug.WriteLine(e.Message); return false; } }
/// <summary> /// Asks scheduler to remove job. /// </summary> /// <param name="ao_job"></param> /// <returns></returns> public static bool RemoveJob(Job ao_job) { try { IScheduler lo_scheduler = SchedulerFactory.Instance().GetScheduler(); if (ao_job.schedtype.Equals(ScheduleType.Repeating)) { lo_scheduler.RemoveRecurringJob(ao_job.id); } else { lo_scheduler.RemoveOnceJob(ao_job.secretid); } return true; } catch (Exception e) { Debug.WriteLine(e.Message); return false; } }
public void createChallenge(Challenge challenge) { //If the challenge comes to us via the soap web service then there will already be an Id attached. if (String.IsNullOrWhiteSpace(challenge.Id)) { challenge.Id = Guid.NewGuid().ToString(); } db.Challenges.Add(challenge); db.SaveChanges(); Job lo_cjob = new Job(); lo_cjob.tasktype = JobType.Challenge; lo_cjob.schedtype = ScheduleType.Once; lo_cjob.id = challenge.Id + "_job"; //TimeSpan lo_elapsedTime = ((DateTime)challenge.endTime).Subtract(DateTime.Now); DateTimeOffset ldao_date = DateTime.SpecifyKind((DateTime)challenge.endTime, DateTimeKind.Utc); lo_cjob.date = ldao_date; //string[] ls_args = new string[]; if (ScheduleJobs.AddJob(lo_cjob, new string[] { challenge.Id.ToString() })) { db.Jobs.Add(lo_cjob); db.SaveChanges(); } }
public static bool EditJob(Job ao_job) { return AddJob(ao_job); }