Example #1
0
        public async Task <IActionResult> AddRating(CocktailViewModel cocktail)
        {
            int userId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));

            var cocktailRating = new CocktailRatingViewModel
            {
                Value      = (cocktail.SelectedRating),
                CocktailId = cocktail.Id,
                UserId     = userId,
            };

            var cocktailRatingDto = this.cocktailRatingVmMapper.MapDTO(cocktailRating);

            var rating = await this.cocktailRatingService.CreateRatingAsync(cocktailRatingDto);

            var currentCocktail = await this.cocktailService.GetCokctailAsync(rating.CocktailId);

            var cocktailVM = this.cocktailVmMapper.MapViewModel(currentCocktail);

            var DtoComments = await this.cocktailCommentService.GetCocktailCommentsAsync(cocktailVM.Id);

            cocktailVM.Comments      = this.cocktailCommentVmMapper.MapViewModel(DtoComments);
            cocktailVM.AverageRating = this.cocktailRatingService.GetAverageCocktailRating(cocktail.Id);

            return(RedirectToAction("Details", "Cocktails", new { area = "", id = cocktailVM.Id }));
        }
Example #2
0
        public async Task <IActionResult> RateCocktail(int rating, Guid id)
        {
            var viewModel = new CocktailRatingViewModel();

            viewModel.UserId     = Guid.Parse(manager.GetUserId(HttpContext.User));
            viewModel.CocktailId = id;
            viewModel.Rating     = rating;

            await cocktailRatingServices.CreateRating(viewModel.GetDtoFromVM());


            return(RedirectToAction("Details", "Cocktail", id));
        }
        public static CocktailRatingDTO GetDtoFromVM(this CocktailRatingViewModel item)
        {
            if (item == null)
            {
                throw new ArgumentNullException();
            }

            return(new CocktailRatingDTO
            {
                UserId = item.UserId,
                CocktailId = item.CocktailId,
                Rating = item.Rating,
            });
        }
        public async Task <IActionResult> Create(CocktailRatingViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await this.userManager.GetUserAsync(User);

                var userName = user.Email.Split('@')[0];

                viewModel.UserId   = user.Id;
                viewModel.UserName = userName;
                var ratingDto = this.modelMapper.MapFrom(viewModel);


                await this.cocktailRatingService.CreateAsync(ratingDto);

                return(RedirectToAction("Index", "Home"));
            }

            return(View(viewModel));
        }