public async Task <ActionResult <bool> > LeaveReview(LeaveReviewInputModel input) { input.UserId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); await this.reviewsService.AddReviewAsync(input); return(true); }
public async Task AddReviewAsync(LeaveReviewInputModel input) { var webtoonId = this.webtoonsRepository.GetWebtoonByTitleNumber(input.WebtoonTitleNumber).Id; var review = this.reviewsRepository.All().FirstOrDefault(r => r.ReviewAuthorId == input.UserId && r.WebtoonId == webtoonId); if (review == null) { review = new Review { CreatedOn = DateTime.UtcNow, ReviewAuthorId = input.UserId, WebtoonId = webtoonId, ReviewInfo = input.UserReview, ReviewNumber = (this.reviewsRepository.GetReviewsCount() + 1).ToString(), }; await this.reviewsRepository.AddAsync(review); await this.reviewsRepository.SaveChangesAsync(); } else { throw new ArgumentException("You already gave a review for this webtoon."); } }