예제 #1
0
        public IActionResult Add(int id, HomeDetailsViewModel model)
        {
            var book = bookRepository.GetBook(id);

            if (ModelState.IsValid)
            {
                Review newReview = new Review
                {
                    BookId         = book.Id,
                    ReviewComments = model.Review.ReviewComments,
                    Rating         = model.Review.Rating,
                    Book           = model.Book,
                    Id             = model.ReviewId,
                };


                reviewRepository.Add(newReview);


                reviewRepository.GetAllReviews().Where(a => a.BookId == book.Id).ToList();

                var book5 = bookRepository.GetBook(id).Reviews.Where(p => p.Rating == 5).Count();
                var book4 = bookRepository.GetBook(id).Reviews.Where(p => p.Rating == 4).Count();
                var book3 = bookRepository.GetBook(id).Reviews.Where(p => p.Rating == 3).Count();
                var book2 = bookRepository.GetBook(id).Reviews.Where(p => p.Rating == 2).Count();
                var book1 = bookRepository.GetBook(id).Reviews.Where(p => p.Rating == 1).Count();


                float total        = ((book1 * 1) + (book2 * 2) + (book3 * 3) + (book4 * 4) + (book5 * 5));
                var   totalReviews = bookRepository.GetBook(id).Reviews.Count();
                float average      = total / totalReviews;

                BookAverageRating AvgRating = new BookAverageRating
                {
                    AverageRating = average,
                    BookId        = book.Id
                };

                var avgRating = bookAverageRatingRepository.GetAllAverageRating().Where(a => a.BookId == id).Count();

                /*BookAverageRating newAvgRating = new BookAverageRating
                 * {
                 *  Id = book.BookAverageRating.Id
                 * };*/

                if (avgRating == 0)
                {
                    bookAverageRatingRepository.Add(AvgRating);
                }
                else
                {
                    bookAverageRatingRepository.Delete(AvgRating.Id);
                    bookAverageRatingRepository.Add(AvgRating);
                }
                return(RedirectToAction("List", new { id = newReview.BookId }));
            }
            return(View());
        }
예제 #2
0
        public ViewResult Index()
        {
            BookCarrouselViewModel model = new BookCarrouselViewModel()
            {
                Books = _bookRepository.GetAllBooks(),

                Reviews            = reviewRepository.GetAllReviews(),
                BookAverageRatings = bookAverageRatingRepository.GetAllAverageRating()
            };



            return(View(model));
        }