Example #1
0
        public async Task <IActionResult> AddReview(int id, [Bind("RMessage, Rating, BeerId, UserId")] BeerReviewViewModel model)
        {
            if (id == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var user = await _userManager.GetUserAsync(User);

                    var newReview = await this.reviewService.AddReview(user.Id, id,
                                                                       model.Rating, model.RMessage);

                    return(RedirectToAction("Details", new { id }));
                }
                catch (InvalidOperationException)
                {
                    ViewBag.Message = "You have already reviewed this beer!";
                }
            }

            var beerDTO = await beerService.GetBeerAsync(id);

            var beerModel = new BeerReviewViewModel(beerDTO.Id, beerDTO.BeerName, beerDTO.AlcByVol, beerDTO.Description,
                                                    beerDTO.BeerType, beerDTO.BeerTypeId, beerDTO.Brewery, beerDTO.BreweryId, beerDTO.AvgRating);

            return(View(beerModel));
        }
        public void Setters_ShouldSetCorrectly()
        {
            var review = new Mock <IBeerReview>();
            var sut    = new BeerReviewViewModel();

            sut.Review = review.Object;

            Assert.AreSame(review.Object, sut.Review);
        }
Example #3
0
 public IActionResult AddReview(int id)
 {
     if (id == null)
     {
         return(NotFound());
     }
     try
     {
         var beerDTO = beerService.GetBeer(id);
         var model   = new BeerReviewViewModel(beerDTO.Id, beerDTO.BeerName, beerDTO.AlcByVol, beerDTO.Description,
                                               beerDTO.BeerType, beerDTO.BeerTypeId, beerDTO.Brewery, beerDTO.BreweryId, beerDTO.AvgRating);
         return(View(model));
     }
     catch (Exception)
     {
         return(NotFound());
     }
 }