Example #1
0
 private void btn_clearCart_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Are you sure you want to clear your cart?", "Clear Cart", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         _cartManager.ClearCart(_cart);
         ClearAllItemsPanelsFromCart();
         UpdateCartControllers();
     }
 }
Example #2
0
        private void LoadCartFromDatabase()
        {
            Cart cart = _cartManager.LoadCartFromDatabase(_account);

            if (cart == null)
            {
                MessageBox.Show($"You don't have a cart.", "Load Cart", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
            _cartManager.ClearCart(_cart);
            foreach (var cartItem in cart.Items)
            {
                Item item = _catalogManager.GetItemByItemCode(cartItem.ItemCode);
                item.QtyInPackage = cartItem.QtyInPackage;
                _cart.Items.Add(item);
            }
            ViewCart();
        }
        public IActionResult ClearCart()
        {
            CartManager.ClearCart();

            return(PartialView("_CartPartial"));
        }
        public async Task <IActionResult> CheckPayResult(bool PaySuccess = false, string OrderKey = "")
        {
            if (!PaySuccess)
            {
                TempData["PayResult"] = $"付款失敗QQ...詳情請洽歐付寶的客服人員(02-2655-0115)";
                return(View("PayResult"));
            }

            int?GetOrderId = HttpContext.Session.GetInt32(OrderKey);
            int OrderId    = 0;

            // 查看此筆交易的 Key 是否有效
            if (GetOrderId == null)
            {
                return(NotFound());
            }
            else
            {
                // 若有效,則取得此筆交易的ID & 清除此筆交易的 KEY
                OrderId = (int)GetOrderId;
                HttpContext.Session.Remove(OrderKey);

                // 更新訂單狀態
                _context.OrderForm.FirstOrDefault(o => o.Id == OrderId).CheckOut = "YES";

                // 更新庫存和銷量
                Cart CurrentCart = CartManager.GetCurrentCart();

                foreach (var cartItem in CurrentCart)
                {
                    Product product = _context.Product.FirstOrDefault(m => m.Id == cartItem.Id);

                    product.Quantity   -= cartItem.Quantity;
                    product.SellVolume += cartItem.Quantity;

                    // 連動更新 Product2 的庫存和銷量
                    if (product.FromProduct2)
                    {
                        Product2 product2 = _context.Product2.FirstOrDefault(m => m.Id == product.Product2Id);
                        product2.Quantity   -= cartItem.Quantity;
                        product2.SellVolume += cartItem.Quantity;
                    }
                }

                await _context.SaveChangesAsync();

                // 移除購物頁面的快取,避免顯示舊的庫存
                int PageAmount = _context.Product.Count() / 9 + 1;

                for (int Page = 1; Page <= PageAmount; Page++)
                {
                    _memoryCache.Remove($"ProductPage{Page}");
                }

                // 清空購物車
                CartManager.ClearCart();

                _logger.LogInformation($"[{User.Identity.Name}]對第{OrderId}號訂單付款成功!");
                TempData["PayResult"] = $"付款成功!~請點選上方的[我的訂單]來查看付款結果。";
                return(View("PayResult"));
            }
        }