Пример #1
0
        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);
        }
Пример #2
0
        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]);
            }
        }