Пример #1
0
        /// <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;
            }
        }
Пример #2
0
        /// <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;
            }
        }
Пример #3
0
        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();
            }
        }
Пример #4
0
 public static bool EditJob(Job ao_job)
 {
     return AddJob(ao_job);
 }