public ActionResult <List <GhRepositoryDto> > ReadRepositoriesByUserId([Required] int userId) { return(userId switch { _ when userId < 0 => BadRequest(RecademyException.InvalidArgument(nameof(userId), userId)), _ => Ok(_githubService.GhGetRepositories(userId)) });
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)); }
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()); }
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(); }
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)); }
public User Get(int id) { return(Find(id) ?? throw RecademyException.UserNotFound(id)); }
public ProjectInfo Get(int id) { return(Find(id) ?? throw RecademyException.ProjectNotFound(id)); }
public ReviewRequest Get(int id) { return(_context.ReviewRequests.Find(id) ?? throw RecademyException.ReviewRequestNotFound(id)); }