예제 #1
0
        public async Task UpvoteProblemTest()
        {
            var adminId = (await UserUtils.GetAdmin()).Id;
            var stuId   = (await UserUtils.GetStudent()).Id;

            var pubId = await problemService.CreateProblemAsync(new Data.Problem
            {
                Name   = Guid.NewGuid().ToString(),
                UserId = adminId
            });

            Assert.AreNotEqual(0, pubId);

            Assert.IsTrue(await voteService.UpvoteProblemAsync(stuId, pubId));
            var result = await problemService.GetProblemAsync(pubId);

            Assert.AreEqual(1, result?.Upvote);

            Assert.IsFalse(await voteService.UpvoteProblemAsync(stuId, pubId));
            Assert.IsFalse(await voteService.DownvoteProblemAsync(stuId, pubId));
        }
예제 #2
0
        public async Task VoteProblem([FromBody] ProblemVoteModel model)
        {
            var userId = userManager.GetUserId(User);
            var result = model.VoteType switch
            {
                1 => await voteService.UpvoteProblemAsync(userId, model.ProblemId),
                2 => await voteService.DownvoteProblemAsync(userId, model.ProblemId),
                _ => false
            };

            if (!result)
            {
                throw new BadRequestException("评价失败");
            }
        }