public IActionResult AddReview(AddReviewViewModel addReviewViewModel) { var activeUser = _userManager.GetUserAsync(User).Result; var product = _dbContext.Products.Include(prod => prod.Reviews).FirstOrDefault(prod => prod.Id == addReviewViewModel.ProductId); if (product != null) { var newReview = new Review() { Product = product, Rating = addReviewViewModel.Rating, Text = addReviewViewModel.Text, User = activeUser }; _dbContext.Reviews.Add(newReview); _dbContext.SaveChanges(); } return(Redirect(Request.Headers["Referer"].ToString())); }
public IActionResult Purchase(PurchaseViewModel purchaseViewModel) { var activeUser = _userManager.GetUserAsync(User).Result; var productList = new List <Product>(); var productIds = _cartService.Get(HttpContext.Session); foreach (var productId in productIds) { var product = _dbContext.Products.Include(prod => prod.PurchaseProducts).FirstOrDefault(prod => prod.Id == productId); if (product != null) { productList.Add(product); } } if (productList.Count != 0) { var purchase = new Purchase { User = activeUser, PurchaseProducts = new List <PurchaseProduct>(), DateTime = DateTime.Now }; _dbContext.Purchases.Add(purchase); foreach (var product in productList) { purchase.TotalCost += product.Price - product.Price * product.Discount / 100; var orderProduct = new PurchaseProduct() { Purchase = purchase, Product = product }; purchase.PurchaseProducts.Add(orderProduct); product.PurchaseProducts.Add(orderProduct); } _dbContext.SaveChanges(); _cartService.Clear(HttpContext.Session); return(View("Purchase")); } return(RedirectToAction("Index", "Home")); }