Example #1
0
        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();
            }
        }
Example #2
0
        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();
        }
Example #3
0
        /// <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();
        }
Example #4
0
        /// <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));
     }
 }
Example #6
0
        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);
        }
Example #7
0
        /// <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);
            }
        }
Example #8
0
        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);
        }
Example #9
0
        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));
            }
        }
Example #11
0
 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("表达式错误");
     }
 }
Example #12
0
        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);
        }