using Estsh.Core.Quartz.Enum; using Estsh.Core.Quartz.Model; using Estsh.Core.Quartz.Tools; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace Estsh.Core.Quartz.Service { public class FileQuartzService : IQuartzService { private QuartzFileHelper _quartzFileHelper; public FileQuartzService(QuartzFileHelper quartzFileHelper) { _quartzFileHelper = quartzFileHelper; } public Task AddJob(tab_quarz_task model) { return Task.Run(() => { var list= _quartzFileHelper.GetJobs(a=>1==1); if (list == null) { list= new List(); } if (list.Count == 0) { model.id =1; } else { model.id = list.Max(a => a.id) + 1; } list.Add(model); _quartzFileHelper.WriteJobConfig(list); return new ResultQuartzData { message = "数据保存成功!", status = true }; }); } public Task> GetJobs(Expression> where) { return Task.Run(() => { var list = _quartzFileHelper.GetJobs(where); return list; }); } public Task Pause(tab_quarz_task model) { //throw new NotImplementedException(); return Task.Run(() => { var list = _quartzFileHelper.GetJobs(a => 1 == 1); list.ForEach(f=> { if(f.TaskName == model.TaskName && f.GroupName == model.GroupName) { f.Status = Convert.ToInt32(JobState.暂停); } }) ; _quartzFileHelper.WriteJobConfig(list); return new ResultQuartzData { message = "数据暂停成功!", status = true }; ; }); } public Task Remove(tab_quarz_task model) { return Task.Run(() => { var list = _quartzFileHelper.GetJobs(a => 1 == 1); list.Remove(list.Find(a=>a.TaskName==model.TaskName&&a.GroupName==model.GroupName)); _quartzFileHelper.WriteJobConfig(list); return new ResultQuartzData { message = "数据暂停成功!", status = true }; ; }); } //public Task Run(tab_quarz_task model) //{ // return Task.Run(() => // { // var list = _quartzFileHelper.GetJobs(a => 1 == 1); // list.ForEach(f => { // if (f.TaskName == model.TaskName && f.GroupName == model.GroupName) // { // f.Status = Convert.ToInt32(JobState.开启); // } // }); // _quartzFileHelper.WriteJobConfig(list); // return new ResultQuartzData { message = "数据暂停成功!", status = true }; ; // }); //} public Task Start(tab_quarz_task model) { return Task.Run(() => { var list = _quartzFileHelper.GetJobs(a => 1 == 1); list.ForEach(f => { if (f.TaskName == model.TaskName && f.GroupName == model.GroupName) { f.Status = Convert.ToInt32(JobState.开启); } }); _quartzFileHelper.WriteJobConfig(list); return new ResultQuartzData { message = "数据开启成功!", status = true }; ; }); } public Task Update(tab_quarz_task model) { return Task.Run(() => { var list = _quartzFileHelper.GetJobs(a => 1 == 1); list.Remove(list.Find(a =>a.id==model.id)); list.Add(model); _quartzFileHelper.WriteJobConfig(list); return new ResultQuartzData { message = "数据修改成功!", status = true }; ; }); } } }