Exemplo n.º 1
0
        public IActionResult Complete(ShippingDetails shippingDetails)
        {
            if (ModelState.IsValid)
            {
                var cart = _sessionService.GetCart();

                foreach (var item in cart.CartLines)
                {
                    if (item.Product.UnitInStock > item.Quantity)
                    {
                        _productService.Update(new Product()
                        {
                            ProductName = item.Product.ProductName,
                            Id          = item.Product.Id,
                            UnitPrice   = item.Product.UnitPrice,
                            UnitInStock = (item.Product.UnitInStock - item.Quantity),
                            Image       = item.Product.Image,
                            CategoryId  = item.Product.CategoryId
                        });
                    }
                    else
                    {
                        TempData.Add("message", String.Format("insufficient product units(Available product Units={0})", item.Product.UnitInStock));
                        return(View(shippingDetails));
                    }
                }
                var order = new Order()
                {
                    Id        = r.Next(10000, 100000),
                    Total     = cart.Total,
                    AccountId = _userManager.GetUserId(HttpContext.User),
                    Mahalle   = shippingDetails.Neighborhood,
                    Name      = shippingDetails.Name,
                    Sehir     = shippingDetails.Province,
                    Semt      = shippingDetails.District
                };
                _orderService.Add(order);

                foreach (var pr in cart.CartLines)
                {
                    OrderLine orderLine = new OrderLine();
                    orderLine.Quantity  = pr.Quantity;
                    orderLine.Price     = pr.Quantity * pr.Product.UnitPrice;
                    orderLine.ProductId = pr.Product.Id;
                    orderLine.AccountId = _userManager.GetUserId(HttpContext.User);
                    orderLine.OrderId   = order.Id;


                    _orderLineService.Add(orderLine);
                }
                cart.CartLines.Clear();
            }

            return(RedirectToAction("Details"));
        }
Exemplo n.º 2
0
        public IActionResult Complete(ShippingDetail shippingDetail)
        {
            var cart = _cartSessionService.GetCart();

            shippingDetail.AccountId = _userManager.GetUserId(HttpContext.User);
            shippingDetail.Time      = DateTime.Today;
            _shippingDetailService.Add(shippingDetail);

            Order order = new Order()
            {
                AccountId        = _userManager.GetUserId(HttpContext.User),
                ShippingDetailId = shippingDetail.ID,
                Total            = cart.Total,
            };

            _orderService.Add(order);
            foreach (var item in cart.CartLines)
            {
                if (item.Supplement.UnitInStock > item.Quantity)
                {
                    item.Supplement.UnitInStock = (item.Supplement.UnitInStock - item.Quantity);
                    _supplementService.Update(item.Supplement);



                    OrderLine orderLine = new OrderLine();
                    orderLine.OrderID      = order.ID;
                    orderLine.Price        = item.Supplement.Price;
                    orderLine.SupplementID = item.Supplement.ID;
                    orderLine.Quantity     = item.Quantity;
                    orderLine.AccountId    = _userManager.GetUserId(HttpContext.User);
                    orderLine.Time         = DateTime.Today;
                    _orderLineService.Add(orderLine);
                }
            }
            cart.CartLines.Clear();
            TempData.Add("message", "Your products successfully completed");



            return(RedirectToAction("Details"));
        }