public async Task <ActionResult <bool> > LeaveReview(LeaveReviewInputModel input)
        {
            input.UserId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            await this.reviewsService.AddReviewAsync(input);

            return(true);
        }
Exemple #2
0
        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.");
            }
        }