public IActionResult CreateReview(int bookId, int ReviewerId, Review review) { using (var client = new HttpClient()) { var reviewerDto = reviewerRepository.GetReviewer(ReviewerId); var bookDto = bookRepository.GetBookById(bookId); if (reviewerDto == null || bookDto == null || review == null) { ModelState.AddModelError("", "Invalid book, reviewer, or review. Cannot create review"); ViewBag.BookId = bookId; ViewBag.BookTitle = bookDto == null ? "" : bookDto.Title; return(View(review)); } review.Reviewer = new Reviewer { Id = reviewerDto.Id, FirstName = reviewerDto.FirstName, LastName = reviewerDto.LastName }; review.Book = new Book { Id = bookDto.Id, Isbn = bookDto.Isbn, Title = bookDto.Title, }; client.BaseAddress = new Uri("http://localhost:5000/api/"); var responseTask = client.PostAsJsonAsync("reviews", review); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var newReviewTask = result.Content.ReadAsAsync <Review>(); newReviewTask.Wait(); var newReview = newReviewTask.Result; ViewData["SuccessMessage"] = $"Review for {review.Book.Title} was successfully created!"; return(RedirectToAction("GetReviewById", new { reviewId = newReview.Id })); } ModelState.AddModelError("", "Review not created."); ViewBag.BookId = bookId; ViewBag.BookTitle = bookDto == null ? "" : bookDto.Title; } return(View(review)); }
public IActionResult DetailReviewer(int reviewerId) { var reviewer = reviewerRepository.GetReviewer(reviewerId); if (reviewer == null) { ModelState.AddModelError("", "Error getting a country"); ViewBag.Message = $"There was a problem retrieving country id {reviewerId}" + $" from the database or no country with id exists."; reviewer = new ReviewerDto(); } var reviews = reviewerRepository.GetReviewsByReviewer(reviewerId); if (reviews.Count() <= 0) { ViewBag.ReviewMessage = $"{reviewer.LastName}, {reviewer.FirstName} has no reviewss."; } IDictionary <ReviewDto, BookDto> ReviewsAdnBooks = new Dictionary <ReviewDto, BookDto>(); foreach (var review in reviews) { var book = reviewRepository.GetBookFromReview(review.Id); ReviewsAdnBooks.Add(review, book); } var reviewerReviewsBookModel = new ReviewerReviewsBooksViewModel() { Reviewer = reviewer, ReviewBook = ReviewsAdnBooks }; return(View(reviewerReviewsBookModel)); }