public HandleState UpdateStatus(StageComment model) { HandleState result = null; var stage = stages.Find(x => x.Id == model.StageId); if (stage == null) { result = new HandleState(404, "Not found"); } else { stages.First(x => x.Id == model.StageId).Status = model.Status; Comment newComment = null; if (model.Status == StatusEnum.StageStatus.Pending) { newComment = new Comment { Id = Guid.NewGuid(), CommentType = StatusEnum.CommentType.Pending, Content = model.Content, StageId = model.StageId, CreatedDate = DateTime.Now, UserId = user.UserId }; comments.Add(newComment); jobs.First(x => x.Id == stage.JobId).CurrentStageStatus = StatusEnum.JobStatus.Pending; } if (model.Status == StatusEnum.StageStatus.Done) { var list = stages.Where(x => x.JobId == stage.JobId); var countFinish = list.Count(x => x.Status == StatusEnum.StageStatus.Done); if (list.Count() == countFinish) { jobs.First(x => x.Id == stage.JobId).CurrentStageStatus = StatusEnum.JobStatus.Finish; } newComment = new Comment { Id = Guid.NewGuid(), CommentType = StatusEnum.CommentType.Done, Content = model.Content, StageId = model.StageId, CreatedDate = DateTime.Now, UserId = user.UserId }; comments.Add(newComment); } jobs.First(x => x.Id == stage.JobId).CurrentDeadline = stage.EndDate; result = new HandleState(); } return(result); }
public LocalizedString UpdateStatus(StageComment stage) { if (!ModelState.IsValid) { return(stringLocalizer[LanguageSub.DATA_NOT_EMPTY]); } var result = stateRepository.UpdateStatus(stage); string message = HandleError.GetMessage(result, Crud.Update); if (result.Success) { return(stringLocalizer[message]); } else { return(stringLocalizer[message]); } }