Exemplo n.º 1
0
 /// <summary>
 /// Loads all jobs from SQLDB into a template List
 /// </summary>
 private void loadJobsFromDB()
 {
     templates = new List <JobTemplate>();
     try
     {
         DBJob        dbJob      = new DBJob();
         var          dbJobQuery = from job in db.Jobs select job;
         List <DBJob> dbJobs     = dbJobQuery.ToList();
         if (dbJobs != null)
         {
             foreach (DBJob job in dbJobs)
             {
                 JobTemplate template = new JobTemplate();
                 template.ID    = job.JobId;
                 template.Name  = job.JobName;
                 template.Group = job.JobGroup;
                 template.processPathStringsFromDB(job.Process, job.WorkingDirectory);
                 template.Arguments        = job.Arguments;
                 template.WorkingDirectory = job.WorkingDirectory;
                 template.CronSchedule     = job.CronSchedule;
                 template.Timeout          = job.TimeOut.ToString();
                 templates.Add(template);
             }
         }
     }
     catch (Exception ex)
     {
         QuartzService.log("Error loading Jobs from DB: " + "Exception\n" + ex.StackTrace);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Updates SQLDB from single template
        /// </summary>
        /// <param name="template"></param>
        private UpdateType updateDatabase(JobTemplate template)
        {
            UpdateType updateType = UpdateType.Unknown;

            //check to see if all null except ID(this means to delete JOB from DB)
            if (template.Name == null &&
                template.Group == null &&
                template.Process == null &
                template.WorkingDirectory == null &&
                template.Arguments == null &&
                template.CronSchedule == null &&
                template.Timeout == null)
            {
                DBJob toDelete = db.Jobs.Where(s => s.JobId == template.ID).FirstOrDefault <DBJob>();
                if (toDelete != null)
                {
                    db.Entry(toDelete).State = System.Data.Entity.EntityState.Deleted;
                    updateType = UpdateType.Remove;
                }
            }
            //job needs to be added or updated
            else
            {
                var jobQuery = from job in db.Jobs
                               where job.JobId == template.ID
                               select job;
                // job needs updated
                if (jobQuery.Count() == 1)
                {
                    DBJob dbJob = jobQuery.SingleOrDefault();
                    dbJob.JobName          = template.Name;
                    dbJob.JobGroup         = template.Group;
                    dbJob.Process          = template.Process;
                    dbJob.WorkingDirectory = template.WorkingDirectory;
                    dbJob.Arguments        = template.Arguments;
                    dbJob.CronSchedule     = template.CronSchedule;
                    dbJob.TimeOut          = Int32.Parse(template.Timeout);
                    updateType             = UpdateType.Change;
                }
                //job needs added
                if (jobQuery.Count() == 0)
                {
                    DBJob dbJob = new DBJob();
                    dbJob.JobId            = template.ID;
                    dbJob.JobName          = template.Name;
                    dbJob.JobGroup         = template.Group;
                    dbJob.Process          = template.Process;
                    dbJob.WorkingDirectory = template.WorkingDirectory;
                    dbJob.Arguments        = template.Arguments;
                    dbJob.CronSchedule     = template.CronSchedule;
                    dbJob.TimeOut          = Int32.Parse(template.Timeout);
                    db.Jobs.Add(dbJob);
                    updateType = UpdateType.Add;
                }
            }
            return(updateType);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Load a single job from SQLDB by JobID
        /// </summary>
        /// <param name="JobID"></param>
        /// <returns>Template</returns>
        public JobTemplate loadJobFromDB(String JobID)
        {
            JobTemplate template = new JobTemplate();

            try
            {
                int   iJob  = Int32.Parse(JobID);
                DBJob dbJob = db.Jobs.FirstOrDefault(j => j.JobId == iJob);
                template.ID    = dbJob.JobId;
                template.Name  = dbJob.JobName;
                template.Group = dbJob.JobGroup;
                template.processPathStringsFromDB(dbJob.Process, dbJob.WorkingDirectory);
                template.Arguments        = dbJob.Arguments;
                template.WorkingDirectory = dbJob.WorkingDirectory;
                template.CronSchedule     = dbJob.CronSchedule;
                template.Timeout          = dbJob.TimeOut.ToString();
            }
            catch (Exception ex)
            {
                QuartzService.log("Error loading Job from DB: " + "Exception\n" + ex.StackTrace);
            }
            return(template);
        }