public async Task <ApiResult> UpdateAsync(SubmitDTO <ScheduleTaskDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }

            bool bRet = await _scheduleRepository.SetAsync(() => new { task_name = dto.TaskName, line_code = dto.LineCode, version = (dto.Version + 1) }, oo => oo.Id == this.GrainId);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            ScheduleTaskState scheduleTaskState = this.State;

            scheduleTaskState.TaskName = dto.TaskName;
            scheduleTaskState.LineCode = dto.LineCode;
            scheduleTaskState.Version++;

            ///任务完成 进行系统对接
            if (dto.TaskState == TaskState.Complete)
            {
                TaskListModel scheduleTaskModel = new TaskListModel()
                {
                    TaskCode = dto.TaskCode
                };
                await Observer.PublishAsync(EventContract.ComConcrete.TaskListToZK, scheduleTaskModel);
            }
            await this.Persist(ProcessAction.Update, scheduleTaskState);

            return(ApiResultUtil.IsSuccess());
        }
Exemple #2
0
        public async Task <ApiResult> UpdateAsync(SubmitDTO <ScheduleTaskDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }

            bool bRet = await _scheduleRepository.SetAsync(() => new { task_name = dto.TaskName, line_code = dto.LineCode, version = (dto.Version + 1) }, oo => oo.Id == this.GrainId);


            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            ScheduleTaskState scheduleTaskState = this.State;

            scheduleTaskState.TaskName = dto.TaskName;
            scheduleTaskState.LineCode = dto.LineCode;
            scheduleTaskState.Version++;

            ///任务完成 进行系统对接
            if (dto.TaskState == TaskState.Complete)
            {
                ScheduleTaskVO scheduleTaskVO = this.ObjectMapper.Map <ScheduleTaskVO>(this.State);
                await PublishAsync(scheduleTaskVO);
            }
            await this.Persist(ProcessAction.Update, scheduleTaskState);

            return(ApiResultUtil.IsSuccess());
        }