/// <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); } }
/// <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); }
/// <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); }