Ejemplo n.º 1
0
        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()));
        }
Ejemplo n.º 2
0
        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"));
        }