private async Task StopOrStart(QuartzOptionDTO quartzOption, QuartzModel model) { model.LastRunTime = DateTime.Now; quartzService.Update(model); QuartzResult result = null; if (model.TaskStatus == 1) { result = await schedulerFactory.Pause(mapper.Map <QuartzOption>(quartzOption)); MessageService.Show($"停止:{JsonConvert.SerializeObject(result)} "); } else { result = await schedulerFactory.Start(mapper.Map <QuartzOption>(quartzOption)); if (!result.status) { result = await schedulerFactory.AddJob(mapper.Map <QuartzOption>(quartzOption)); } MessageService.Show($"开始:{JsonConvert.SerializeObject(result)} "); } if (result != null && result.status) { await ResetCache(); await ReLoadData(); } }
protected async Task DeleteChecked() { MessageBoxResult Confirm = await MessageBox.ConfirmAsync("确定要删除?"); if (Confirm == MessageBoxResult.Ok) { #region 除 QuartzOptionDTO[] quartzOptions = new QuartzOptionDTO[table.SelectedRows.Count()]; table.SelectedRows.CopyTo(quartzOptions); var jobIds = quartzOptions?.Select(p => p.Id); if (jobIds != null && (jobIds.Contains(1000) || jobIds.Contains(1001))) { this.MessageService.Show($"默认任务不可删除 ", MessageType.Error); return; } var JobIds = quartzOptions.Select(p => p.Id); var result = await quartzService.DeleteByAsync(p => JobIds.Contains(p.Id)); if (result) { await ResetCache(); foreach (var quartzOption in quartzOptions) { await schedulerFactory.Remove(mapper.Map <QuartzOption>(quartzOption)); } } MessageService.Show($"删除结果:{JsonConvert.SerializeObject(result)} "); #endregion } await ReLoadData(); }
/// <summary> /// 删除任务 /// </summary> /// <param name="testData"></param> /// <returns></returns> protected async Task Delete(object testData) { MessageBoxResult Confirm = await MessageBox.ConfirmAsync("确定要删除?"); MessageService.Show($"您选择了:{Confirm.ToString()}", MessageType.Success); await Task.Delay(300); if (Confirm == MessageBoxResult.Ok) { QuartzOptionDTO quartzOption = ( QuartzOptionDTO )testData; if (quartzOption.Id == 1000 || quartzOption.Id == 1001) { MessageService.Show($"不允许删除 ", MessageType.Warning); return; } var result = await quartzService.DeleteByAsync(p => p.Id == quartzOption.Id); if (result) { await schedulerFactory.Remove(mapper.Map <QuartzOption>(quartzOption)); await ResetCache(); } MessageService.Show($"删除结果:{JsonConvert.SerializeObject(result)} "); } await ReLoadData(); }
/// <summary> /// 修改 /// </summary> /// <param name="testData"></param> public async void Edit(object testData) { QuartzOptionDTO quartzOption = ( QuartzOptionDTO )testData; var dictionary = quartzOption.ObjectToDictionary("quartzModel"); dictionary.Add("Operation", Operation.Update); await DoSth(dictionary, "编辑任务"); }
public ApiResult Get(int id) { try { QuartzOptionDTO result = _quartzOptionService.GetById(id); return(ApiResult.Success(result)); } catch (ArgumentException ex) { return(ApiResult.Error(HttpStatusCode.BAD_REQUEST, ex.Message)); } }
public List <QuartzOptionDTO> getListPage(QuartzOptionCondition quartzOptionCondition) { Expression <Func <QuartzOption, object> > desc = s => s.CreateTime; IEnumerable <QuartzOption> quartzOptions = _quartzOptionRepository.SelectByPage(quartzOptionCondition.CurrentPage, quartzOptionCondition.PageSize, null, desc); List <QuartzOptionDTO> list = new List <QuartzOptionDTO>(); foreach (var item in quartzOptions) { QuartzOptionDTO quartzOptionDTO = ConvertToDTO(item); list.Add(quartzOptionDTO); } return(list); }
/// <summary> /// 暂停任务 /// </summary> /// <param name="testData"></param> /// <returns></returns> protected async Task Stop(object testData) { QuartzOptionDTO quartzOption = ( QuartzOptionDTO )testData; if (quartzOption.TaskStatus == TriggerState.Paused || quartzOption.TaskStatus == TriggerState.Complete || quartzOption.TaskStatus == TriggerState.Error) { return; } var model = quartzService.QueryById(quartzOption.Id); if (model != null) { model.TaskStatus = ( int )TriggerState.Paused; await StopOrStart(quartzOption, model); } }
private QuartzOptionDTO ConvertToDTO(QuartzOption item) { QuartzOptionDTO quartzOptionDTO = new QuartzOptionDTO(); quartzOptionDTO.Id = item.Id; quartzOptionDTO.JobName = item.JobName; quartzOptionDTO.GroupName = item.GroupName; quartzOptionDTO.Cron = item.Cron; quartzOptionDTO.Api = item.Api; quartzOptionDTO.LastActionTime = item.LastActionTime.HasValue ? item.LastActionTime.Value.ToString("yyyy-MM-dd hh:MM:ss") : ""; quartzOptionDTO.Description = item.Description; quartzOptionDTO.RequestType = item.RequestType; quartzOptionDTO.ParameterValue = item.ParameterValue; quartzOptionDTO.TaskStatus = item.TaskStatus.GetEnumText(); return(quartzOptionDTO); }
public async Task Update(int id, QuartzOptionDTO quartzOptionDTO) { Valid(quartzOptionDTO); QuartzOption quartzOption = _quartzOptionRepository.SelectById(id); await _schedulerFactory.TriggerAction(quartzOption, JobAction.修改); quartzOption.JobName = quartzOptionDTO.JobName; quartzOption.GroupName = quartzOptionDTO.GroupName; quartzOption.Cron = quartzOptionDTO.Cron; quartzOption.Api = quartzOptionDTO.Api; quartzOption.RequestType = quartzOptionDTO.RequestType; quartzOption.ParameterValue = quartzOptionDTO.ParameterValue; quartzOption.Description = quartzOptionDTO.Description; quartzOption.TaskStatus = TaskStatus.暂停; quartzOption.UpdateTime = DateTime.Now; _quartzOptionRepository.Update(quartzOption); await _schedulerFactory.AddJob(quartzOption); }
public ApiResult Update(int id) { QuartzOptionDTO quartzOptionDTO = new QuartzOptionDTO(); quartzOptionDTO.JobName = Request.Form["jobName"]; quartzOptionDTO.GroupName = Request.Form["groupName"]; quartzOptionDTO.Cron = Request.Form["cron"]; quartzOptionDTO.Api = Request.Form["api"]; quartzOptionDTO.RequestType = Request.Form["requestType"]; quartzOptionDTO.ParameterValue = Request.Form["parameterValue"]; quartzOptionDTO.Description = Request.Form["description"]; try { _quartzOptionService.Update(id, quartzOptionDTO); return(ApiResult.Success()); } catch (ArgumentException ex) { return(ApiResult.Error(HttpStatusCode.BAD_REQUEST, ex.Message)); } }
private void Valid(QuartzOptionDTO quartzOptionDTO) { if (string.IsNullOrEmpty(quartzOptionDTO.JobName)) { throw new ArgumentException("作业名称为空"); } if (string.IsNullOrEmpty(quartzOptionDTO.GroupName)) { throw new ArgumentException("分组名称为空"); } if (string.IsNullOrEmpty(quartzOptionDTO.Cron)) { throw new ArgumentException("表达式为空"); } if (string.IsNullOrEmpty(quartzOptionDTO.Api)) { throw new ArgumentException("api为空"); } if (!quartzOptionDTO.Cron.ValidCron()) { throw new ArgumentException("表达式错误"); } }
public async Task AddJob(QuartzOptionDTO quartzOptionDTO) { Valid(quartzOptionDTO); int count = _quartzOptionRepository.SelectCount(s => s.GroupName == quartzOptionDTO.GroupName && s.JobName == quartzOptionDTO.JobName); if (count > 0) { throw new ArgumentException(string.Format("分组:{0},作业:{1}已存在", quartzOptionDTO.GroupName, quartzOptionDTO.JobName)); } QuartzOption quartzOption = new QuartzOption(); quartzOption.JobName = quartzOptionDTO.JobName; quartzOption.GroupName = quartzOptionDTO.GroupName; quartzOption.Cron = quartzOptionDTO.Cron; quartzOption.Api = quartzOptionDTO.Api; quartzOption.RequestType = quartzOptionDTO.RequestType; quartzOption.ParameterValue = quartzOptionDTO.ParameterValue; quartzOption.Description = quartzOptionDTO.Description; quartzOption.TaskStatus = TaskStatus.暂停; quartzOption.CreateTime = DateTime.Now; _quartzOptionRepository.Insert(quartzOption); await _schedulerFactory.AddJob(quartzOption); }