public async Task <IActionResult> Rate(int productId) { string userId = await GetCurrentUserIdAsync(); if (ratesRepository.PendingForUserWithItemExists(userId, productId)) { Product product = productRepository.GetProductById(productId); ProductToRate productToRate = mapper.Map <ProductToRate>(product); return(View(productToRate)); } else { return(View("Error")); } }
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)); } }