/// <summary> /// 新增任务 /// </summary> /// <param name="taskRequestData">新增的数据</param> /// <param name="page"></param> /// <returns></returns> public async Task <ResponseData> AddTask(TaskRequestData taskRequestData, Page page) { if (!helperFunction.CheckForNull(taskRequestData)) { string Message = "任务名字 和 任务类型 和 业务类型 和 预定时间 不能为空"; return(new ResponseData(Message, "", StatusCode.Fail)); } var taskData = mapper.Map <TaskData>(taskRequestData); var NameIsExists = Db.SingleOrDefault <TaskData>("where Task_Name = @0", taskData.Task_Name); var TimeSpanDate = Convert.ToDateTime(taskRequestData.Task_PresetTime) - DateTime.Now; if (NameIsExists != null) { return(new ResponseData("任务名,已存在", "", StatusCode.Fail)); } if (Convert.ToInt32(TimeSpanDate.Seconds) < 0) { return(new ResponseData("执行时间 必须大于 当前时间", "", StatusCode.Fail)); } switch (taskData.Task_TaskType) { // 添加一次性任务 case "OneOff": taskData.Task_CreateTime = DateTime.Now.ToString("F"); taskData.Task_PresetTime = DateTime.Now.ToString("F"); taskData.Task_ExecuteReuslt = 0; taskData.Task_Isexists = 1; await Db.InsertAsync(taskData); await formalBusiness.AddOneOffTask(taskData); return(new ResponseData("增加一次性任务成功", await Db.PageAsync <TaskData>(page.PageNumber, page.PageSize, "where Task_Isexists = 1"), StatusCode.Success)); // 添加定时任务 case "TimedTask": if (string.IsNullOrEmpty(taskData.Task_PresetTime)) { return(new ResponseData("增加任务失败,必须指定执行时间", "", StatusCode.Success)); } var dateTimeMap = await formalBusiness.AddTimedTask(taskData); taskData.Task_CreateTime = DateTime.Now.ToString("F"); var TimeDifference = (dateTimeMap.ExDateTime - DateTime.Now).TotalSeconds; //taskData.Task_IntervalTime = helperFunction.CheckDateTime(TimeDifference); taskData.Task_ExecuteReuslt = 0; taskData.Task_Isexists = 1; await Db.InsertAsync(taskData); return(new ResponseData("增加定时任务成功", await Db.PageAsync <TaskData>(page.PageNumber, page.PageSize, "where Task_Isexists = 1"), StatusCode.Success)); default: return(new ResponseData("增加任务失败,请明确任务类型", "", StatusCode.Success)); } }
public bool CheckForNull(TaskRequestData taskRequestData) { var IsName = string.IsNullOrEmpty(taskRequestData.Task_Name); var IsTaskType = string.IsNullOrEmpty(taskRequestData.Task_TaskType); var IsBusinessType = string.IsNullOrEmpty(taskRequestData.Task_BusinessType); //var IsPresetTime = string.IsNullOrEmpty(taskRequestData.Task_PresetTime); if (IsName || IsTaskType || IsBusinessType) { return(false); } return(true); }
public async Task <IActionResult> Add(TaskRequestData taskRequestData, [FromQuery] Page page) { return(Ok(await tasksServer.AddTask(taskRequestData, page))); }