public void updateJobs() { using (var db = new internetEntities()) { //Kannan vertaus tallessa olevaan paskaan. foreach (var s in db.timing_table) { try { //Löytyykö jo listalta? if (trigger_job_list.Where(x => x.rowid == s.rowid).Any()) { //Tarkistetaan päivityksen tarve ja jos on tarpeen, päivitetään. TriggerJobViewModel j = trigger_job_list.Where(x => x.rowid == s.rowid).First(); if (j.trigger_time != s.trigger_time) { sched.DeleteJob(j.job.Key); trigger_job_list.Remove(j); TriggerJobViewModel m = createJobAndTrigger(s); trigger_job_list.Add(m); sched.ScheduleJob(m.job, m.trigger); } } else { //Lisätään tämä TriggerJobViewModel m = createJobAndTrigger(s); trigger_job_list.Add(m); sched.ScheduleJob(m.job, m.trigger); } } catch (Exception e) { helperClass.writeLog(e.ToString(), 4); } } //Tallessa olevan paskan vertaus kantaan. List <TriggerJobViewModel> tmpList = trigger_job_list.ToList(); foreach (var s in tmpList) { try { if (!db.timing_table.Where(x => x.rowid == s.rowid).Any()) //Jos ei löydy, niin helvettiin koko paska. { sched.DeleteJob(s.job.Key); trigger_job_list.Remove(s); } } catch (Exception e) { helperClass.writeLog(e.ToString(), 4); } } } }
private TriggerJobViewModel createJobAndTrigger(timing_table s) { try { IJobDetail j = createJob(s); ITrigger t = createTrigger(s); TriggerJobViewModel m = new TriggerJobViewModel { job = j, trigger = t, rowid = s.rowid, trigger_time = s.trigger_time }; return(m); } catch (Exception e) { return(null); } }