예제 #1
0
        public async Task AddReviewToItemAsync_CustomerIDAndReviewViewModel_SameReviewViewModel()
        {
            // arrange
            int    customerID = 3;
            string category   = nameof(Song);
            string content    = "It is good!";
            int    itemID     = 5;
            int    rating     = 3;

            ReviewViewModel rvm = new ReviewViewModel
            {
                Category = category,
                Content  = content,
                ItemID   = itemID,
                Rating   = rating
            };

            using (var context = new ApplicationDbContext(_options))
            {
                _service = new ReviewsService(context);

                // act
                await _service.AddReviewToItemAsync(customerID, rvm);

                var result = context.Find <Customer>(customerID).Reviews.FirstOrDefault();

                // assert
                Assert.AreEqual(result.Content, content);
                Assert.AreEqual(result.SongID, itemID);
                Assert.AreEqual(result.Rating, rating);
            }
        }
예제 #2
0
        public async Task <IActionResult> Create(ReviewViewModel reviewViewModel)
        {
            User user = await _userManager.GetUserAsync(User);

            int customerID = user.CustomerID.Value;

            if (!await CheckCustomerIDWithCurrentUser(reviewViewModel.CustomerID))
            {
                return(View("Error", new ErrorViewModel()));
            }

            await _service.AddReviewToItemAsync(customerID, reviewViewModel);

            return(RedirectToAction(
                       "Details",
                       $"{reviewViewModel.Category}s",
                       new { id = reviewViewModel.ItemID }));
        }