Beispiel #1
0
        /// <summary>
        /// 新增或更新
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ActionResult AddOrUpsert(ScheduleTaskAddOrUpsertRequest model)
        {
            var res = _scheduleTaskConfigService.AddOrUpsert(model);

            return(Content(res.ToJsonString()));
        }
Beispiel #2
0
        /// <summary>
        /// 添加或更新
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public BusinessBaseViewModel <int> AddOrUpsert(ScheduleTaskAddOrUpsertRequest request)
        {
            var errMsg   = string.Empty;
            var insertId = 0;
            var res      = new BusinessBaseViewModel <int>()
            {
                Status = ResponseStatus.Fail
            };

            #region 验证
            if (string.IsNullOrWhiteSpace(request.ApiUrl))
            {
                errMsg = "请求地址不能为空";
                goto error;
            }
            if (request.DiffSeconds == 0)
            {
                errMsg = "请求间隔时间必须大于0";
                goto error;
            }
            if (string.IsNullOrWhiteSpace(request.TaskName))
            {
                errMsg = "任务名称不能为空";
                goto error;
            }
            #endregion

            #region add or upsert
            if (request.Id > 0)
            {
                //upsert
                var model = _scheduleTaskConfigRepository.Find().FirstOrDefault(x => x.Id == request.Id);
                if (model != null)
                {
                    model.ApiUrl          = request.ApiUrl;
                    model.DiffSeconds     = request.DiffSeconds;
                    model.ExceptionNumber = request.ExceptionNumber;
                    model.ExecuteType     = request.ExecuteType;
                    model.Method          = request.Method;
                    model.Parameters      = request.Parameters;
                    model.Status          = request.Status;
                    model.TaskName        = request.TaskName;
                    _scheduleTaskConfigRepository.Update(model);
                    goto success;
                }
            }
            else
            {
                //add
                var model = new ScheduleTaskConfig()
                {
                    TaskName        = request.TaskName,
                    ApiUrl          = request.ApiUrl,
                    CreateTime      = DateTime.Now,
                    DiffSeconds     = request.DiffSeconds,
                    ExceptionNumber = request.ExceptionNumber,
                    ExecuteType     = request.ExecuteType,
                    Method          = request.Method,
                    Parameters      = string.IsNullOrWhiteSpace(request.Parameters) ? "" : request.Parameters,
                    RunStatus       = request.RunStatus,
                    Status          = request.Status,
                    LastRunTime     = DateTime.Now
                };
                insertId = _scheduleTaskConfigRepository.Insert(model);
                goto success;
            }


            #endregion

success:
            try
            {
                _scheduleTaskConfigRepository.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }

            res.ErrorMessage = errMsg;
            res.Status       = ResponseStatus.Success;
            res.BusinessData = insertId;
            return(res);

error:
            res.ErrorMessage = errMsg;
            return(res);
        }