Пример #1
0
 public ActionResult <List <GhRepositoryDto> > ReadRepositoriesByUserId([Required] int userId)
 {
     return(userId switch
     {
         _ when userId < 0 => BadRequest(RecademyException.InvalidArgument(nameof(userId), userId)),
         _ => Ok(_githubService.GhGetRepositories(userId))
     });
Пример #2
0
        public ReviewResponseInfoDto SendReviewResponse(ReviewResponseCreateDto reviewResponseCreateDto)
        {
            ReviewRequest request = _context
                                    .ReviewRequests
                                    .Include(s => s.ProjectInfo)
                                    .ThenInclude(p => p.Skills)
                                    .Include(s => s.User)
                                    .FirstOrDefault(r => r.Id == reviewResponseCreateDto.ReviewRequestId);

            if (request == null)
            {
                throw RecademyException.ReviewRequestNotFound(reviewResponseCreateDto.ReviewRequestId);
            }

            if (request.State == ProjectState.Completed || request.State == ProjectState.Abandoned)
            {
                throw new RecademyException("Failed to send review. It is already closed.");
            }

            var newReview = new ReviewResponse
            {
                ReviewRequestId  = reviewResponseCreateDto.ReviewRequestId,
                Description      = reviewResponseCreateDto.ReviewText,
                ReviewerId       = reviewResponseCreateDto.UserId,
                CreationTime     = DateTime.UtcNow,
                ReviewConclusion = reviewResponseCreateDto.ReviewConclusion
            };

            request.State = ProjectState.Reviewed;
            _context.ReviewResponses.Add(newReview);
            _context.SaveChanges();

            newReview.ReviewRequest = request;
            return(new ReviewResponseInfoDto(newReview));
        }
Пример #3
0
        public List <string> GetUserTags(int userId)
        {
            User userSkills = _context
                              .Users
                              .Include(s => s.UserSkills)
                              .FirstOrDefault(s => s.Id == userId);

            if (userSkills == null)
            {
                throw RecademyException.UserNotFound(userId);
            }

            return(userSkills
                   .UserSkills
                   .Select(s => s.SkillName)
                   .ToList());
        }
Пример #4
0
        public void CreateReviewResponseUpvote(int reviewId, int userId)
        {
            ReviewResponse review = _context.ReviewResponses.Find(reviewId);

            if (review == null)
            {
                throw RecademyException.ReviewRequestNotFound(reviewId);
            }

            if (review.ReviewerId == userId)
            {
                throw new RecademyException("Try to upvote self review response");
            }

            _context.ReviewResponseUpvotes.Add(new ReviewResponseUpvote {
                ReviewResponseId = reviewId, UserId = userId
            });
            _context.SaveChanges();
        }
Пример #5
0
        public UserInfoDto UpdateUserMentorRole(int adminId, int userId, UserType userType)
        {
            User admin = _userRepository.Get(adminId);
            User user  = _userRepository.Get(userId);

            if (admin.UserType != UserType.Admin)
            {
                throw RecademyException.NotEnoughPermission(adminId, admin.UserType, UserType.Admin);
            }

            if (user.UserType == UserType.Admin)
            {
                throw new RecademyException($"Cannot change role, user with id {userId} has admin role");
            }

            if (userType == UserType.Admin)
            {
                throw new RecademyException("Cannot set admin role. Action is not supported");
            }

            return(_userRepository
                   .UpdateUserRole(user, userType)
                   .To(ConvertToDto));
        }
Пример #6
0
 public User Get(int id)
 {
     return(Find(id) ?? throw RecademyException.UserNotFound(id));
 }
Пример #7
0
 public ProjectInfo Get(int id)
 {
     return(Find(id) ?? throw RecademyException.ProjectNotFound(id));
 }
Пример #8
0
 public ReviewRequest Get(int id)
 {
     return(_context.ReviewRequests.Find(id) ?? throw RecademyException.ReviewRequestNotFound(id));
 }