/// <summary>
 /// 删除教辅任务
 /// </summary>
 /// <param name="bookWorkTask">The book work task.</param>
 /// <exception cref="System.ArgumentNullException"></exception>
 public void DeleteBookWorkTask(BookWorkTask bookWorkTask)
 {
     if (bookWorkTask == null)
     {
         throw new ArgumentNullException(nameof(bookWorkTask));
     }
     _bookWorkTaskRepository.Delete(bookWorkTask);
 }
 /// <summary>
 /// 提交任务.
 /// </summary>
 /// <param name="task">The task.</param>
 /// <exception cref="System.ArgumentNullException"></exception>
 public void SubmitTask(BookWorkTask task)
 {
     if (task == null)
     {
         throw new ArgumentNullException(nameof(task));
     }
     _bookWorkTaskRepository.Update(task);
 }
 /// <summary>
 /// 添加任务
 /// </summary>
 /// <exception cref="System.NotImplementedException"></exception>
 public void InsertBookWorkTask(BookWorkTask bookWorkTask)
 {
     if (bookWorkTask == null)
     {
         throw new ArgumentNullException(nameof(bookWorkTask));
     }
     _bookWorkTaskRepository.Insert(bookWorkTask);
 }
        public ActionResult Chapter(ChapterParamModel param)
        {
            if (!ModelState.IsValid)
            {
                param.BookChapterList = _bookChapterService.GetBookChapters(param.BookId);
                return(View(param));
            }
            var chapterIdArr = param.BookChapterIds.Split(',');
            //获取题目数量
            var bookChapterList = chapterIdArr.Select(t => _bookChapterService.GetBookChapterById(int.Parse(t))).ToList();

            //生成任务名
            string taskName = DateTime.Now.ToString("yyyyMMdd-1");
            var    works    = _bookWorkTaskService.GetBookWorkList(new BookWorkRequest()
            {
                Begin = DateTime.Now, End = DateTime.Now, PageSize = 1
            });
            var work = works.FirstOrDefault();

            if (!string.IsNullOrEmpty(work?.Name))
            {
                int num = Convert.ToInt32(work.Name.ToCharArray().Last().ToString()) + 1;
                taskName = DateTime.Now.ToString("yyyyMMdd-" + num);
            }

            var model = new BookWorkTask()
            {
                Name            = taskName,
                BookId          = param.BookId,
                CheckCustomerId = param.CheckCustomerId,
                //标定 录入人
                MarkCustomerId  = param.EntryCustomerId,
                EntryCustomerId = param.EntryCustomerId,
                Status          = TaskStatus.Entry,
                CreateTime      = DateTime.Now
            };

            _bookWorkTaskService.InsertBookWorkTask(model);

            var taskItemList = chapterIdArr.Select(t => new BookWorkTaskItem()
            {
                TaskId    = model.Id,
                ChapterId = int.Parse(t),
                Status    = 0
            }).ToList();

            _bookWorkTaskItemService.InsertBookWorkTaskItems(taskItemList);

            //修改章节表的TaskItemId
            taskItemList.ForEach(t =>
            {
                var bookChapter        = bookChapterList.First(h => h.Id == t.ChapterId);
                bookChapter.TaskItemId = t.Id;
                _bookChapterService.UpdateBookChapter(bookChapter);
            });
            return(RedirectToAction("Index"));
        }
        private void SetEditTaskParam(EditTaskModel model, BookWorkTask task)
        {
            if (task == null)
            {
                return;
            }

            model.StatusItemList.Add(new SelectListItem()
            {
                Text = "录入", Value = ((int)TaskStatus.Entry).ToString()
            });
            model.StatusItemList.Add(new SelectListItem()
            {
                Text = "标定", Value = ((int)TaskStatus.Mark).ToString()
            });
            model.StatusItemList.Add(new SelectListItem()
            {
                Text = "审核", Value = ((int)TaskStatus.Check).ToString()
            });
            model.StatusItemList.Add(new SelectListItem()
            {
                Text = "回撤", Value = ((int)TaskStatus.Revert).ToString()
            });
            model.StatusItemList.Add(new SelectListItem()
            {
                Text = "完成", Value = ((int)TaskStatus.Complete).ToString()
            });

            if (model.TaskId == 0)
            {
                model.TaskStatus = task.Status;
            }

            model.TaskId = task.Id;

            model.CheckCustomerName = model.CheckCustomerName ?? task.CheckCustomer.Username;
            model.EntryCustomerName = model.EntryCustomerName ?? task.EntryCustomer.Username;

            model.EntryCustomerId = model.EntryCustomerId ?? task.EntryCustomerId;
            model.CheckCustomerId = model.CheckCustomerId ?? task.CheckCustomerId;
        }