public async Task <IActionResult> Rate(ProductToRate productToRate) { if (ModelState.IsValid) { Rate rate = mapper.Map <Rate>(productToRate); rate.User.Id = await GetCurrentUserIdAsync(); rate.Product = productRepository.GetProductById(productToRate.Id); await ratesRepository.AddAsync(rate); await ratesRepository.RemovePendingAsync(rate.User.Id, rate.Product.Id); TempData["msg"] = "Your rating has been added!"; return(RedirectToAction("ProductInfo", "Home", new { productId = productToRate.Id })); } else { return(View(productToRate)); } }