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 })); }
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)); }