Beispiel #1
0
        public ReviewRequestInfoDto AddReviewRequest(ReviewRequestAddDto reviewRequestAddDto)
        {
            ProjectInfo project = _projectRepository.Get(reviewRequestAddDto.ProjectId);
            var         projectReviewRequest = _reviewRepository.FindForProject(project);
            var         lastActiveReview     = projectReviewRequest.FirstOrDefault(rr => rr.State == ProjectState.Requested ||
                                                                                   rr.State == ProjectState.Reviewed);

            if (lastActiveReview != null)
            {
                throw new RecademyException(
                          $"Review for this project already exist. Close it before adding new. Review id: {lastActiveReview.Id}");
            }

            //TODO: check if project belong to review author

            var newRequest = new ReviewRequest
            {
                DateCreate  = DateTime.UtcNow,
                State       = ProjectState.Requested,
                Description = reviewRequestAddDto.Description,
                ProjectId   = reviewRequestAddDto.ProjectId,
                UserId      = reviewRequestAddDto.UserId,
            };

            return(_reviewRepository
                   .Create(newRequest)
                   .To(rr => new ReviewRequestInfoDto(rr)));
        }
Beispiel #2
0
        public TestCaseContext WithReviewRequest(ProjectInfoDto projectInfo, out ReviewRequestInfoDto reviewRequest)
        {
            ReviewRequestAddDto reviewRequestAddDto =
                InstanceFactory.CreateReviewRequestAddDto(projectInfo.UserId, projectInfo.ProjectId);

            reviewRequest = ReviewController.CreateReviewRequest(reviewRequestAddDto).Value;

            Assert.NotNull(reviewRequest);

            return(this);
        }
        public void AddTwoSameProjectReview_ShouldFailWithException()
        {
            _testContext
            .WithNewUser(out UserInfoDto user)
            .WithNewProjectForUser(user, out ProjectInfoDto projectInfo)
            .WithReviewRequest(projectInfo, out ReviewRequestInfoDto _);

            ReviewRequestAddDto reviewRequestAddDto =
                InstanceFactory.CreateReviewRequestAddDto(user.Id, projectInfo.ProjectId);

            Assert.Catch <RecademyException>(() => _testContext.ReviewController.CreateReviewRequest(reviewRequestAddDto));
        }
Beispiel #4
0
 public ActionResult <ReviewRequestInfoDto> CreateReviewRequest([FromBody][Required] ReviewRequestAddDto reviewRequestAddDto)
 {
     return(_reviewService.AddReviewRequest(reviewRequestAddDto));
 }