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)); }
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("评价失败"); } }