public ActionResult SuaGioHang(int MaSP)
        {
            //kiểm tra session giỏ hàng tồn tại hay chưa
            if (Session["GioHang"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            SanPham sp = db.SanPham.SingleOrDefault(s => s.MaSP == MaSP);

            if (sp == null)
            {
                Response.StatusCode = 404;
                return(null);
            }
            //lấy list giỏ hàng từ session
            List <IteamGioHang> listGioHang = LayGioHang();
            //kiểm tra xem sản phẩm có tồn tại trong giỏ hàng hay chưa
            IteamGioHang spCheck = listGioHang.SingleOrDefault(s => s.MaSP == MaSP);

            if (spCheck == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            //Lấy List Giỏ Hang tạo giao diện
            ViewBag.GioHang = listGioHang;
            return(View(spCheck));
        }
        public ActionResult ThemGioHangAjax(int MaSP, string strURL)
        {
            //kiểm tra sản phẩm có tồn tại trong CSDL hay không
            SanPham sp = db.SanPham.SingleOrDefault(s => s.MaSP == MaSP);

            if (sp == null)
            {
                // phương thức return về trang 404
                Response.StatusCode = 404;
                return(null);
            }
            // nếu sp có tồn tại thì : Lấy giỏ hàng
            List <IteamGioHang> lstGioHang = LayGioHang();
            //kiểm tra 2 bước  nếu như sản phẩm  có tồn tại trong giỏ hàng này r thì cho trường số lượng ++ lên. nếu chưa có thì khởi tạo nó và cho =1
            //th 1: sản phẩm đã tồn tại trong giỏ hàng
            IteamGioHang spCheck = lstGioHang.SingleOrDefault(s => s.MaSP == MaSP);

            if (spCheck != null)
            {
                //kiểm tra số lượng tồn có nhiều hơn số lượng đặt thì mới cho đặt. không thì thông báo hết cmn hàng
                if (sp.SoLuongTon < spCheck.SoLuong)
                {
                    return(Content("<script>alert(\"Sản Phẩm đã hết hàng!\")"));
                }
                spCheck.SoLuong++;
                spCheck.ThanhTien   = spCheck.SoLuong * spCheck.DonGia;
                ViewBag.TongSoLuong = TongSoLuong();
                ViewBag.TongTien    = TinhTongTien();
                return(PartialView("GioHangPartial"));
            }

            IteamGioHang itemgiohang = new IteamGioHang(MaSP);

            if (sp.SoLuongTon < itemgiohang.SoLuong)
            {
                return(Content("<script>alert(\"Sản Phẩm đã hết hàng!\")"));
            }
            lstGioHang.Add(itemgiohang);
            ViewBag.TongSoLuong = TongSoLuong();
            ViewBag.TongTien    = TinhTongTien();
            return(PartialView("GioHangPartial"));
        }
        public ActionResult CapNhapGioHang(IteamGioHang itemGH)
        {
            //kiểm tra số lượng tồn
            SanPham spcheck = db.SanPham.SingleOrDefault(s => s.MaSP == itemGH.MaSP);

            if (spcheck.SoLuongTon < itemGH.SoLuong)
            {
                return(View("ThongBao"));
            }
            //Cập Nhập số lượng trong session giỏ hàng
            //B1: Lấy List<GioHang> từ seesion GioHang
            List <IteamGioHang> listgiohang = LayGioHang();
            //b2: Lấy sp cập nhập từ trong list<GioHang> ra
            IteamGioHang itemGHupdate = listgiohang.Find(s => s.MaSP == itemGH.MaSP);

            // cập nhập lại số lượng
            itemGHupdate.SoLuong = itemGH.SoLuong;
            // Cập nhập lại số tiền
            itemGHupdate.ThanhTien = itemGHupdate.SoLuong * itemGHupdate.DonGia;
            return(RedirectToAction("XemGioHang"));
        }
        //Thêm giỏ hàng thông thường load lại trang (Không hay)
        public ActionResult ThemGioHang(int MaSP, string strURL)
        {
            //kiểm tra sản phẩm có tồn tại trong CSDL hay không
            SanPham sp = db.SanPham.SingleOrDefault(s => s.MaSP == MaSP);

            if (sp == null)
            {
                // phương thức return về trang 404
                Response.StatusCode = 404;
                return(null);
            }
            // nếu sp có tồn tại thì : Lấy giỏ hàng
            List <IteamGioHang> lstGioHang = LayGioHang();
            //kiểm tra 2 bước  nếu như sản phẩm  có tồn tại trong giỏ hàng này r thì cho trường số lượng ++ lên. nếu chưa có thì khởi tạo nó và cho =1
            //th 1: sản phẩm đã tồn tại trong giỏ hàng
            IteamGioHang spCheck = lstGioHang.SingleOrDefault(s => s.MaSP == MaSP);

            if (spCheck != null)
            {
                //kiểm tra số lượng tồn có nhiều hơn số lượng đặt thì mới cho đặt. không thì thông báo hết cmn hàng
                if (sp.SoLuongTon < spCheck.SoLuong)
                {
                    return(View("ThongBao"));
                }
                spCheck.SoLuong++;
                spCheck.ThanhTien = spCheck.SoLuong * spCheck.DonGia;
                return(Redirect(strURL));// phương thức truyền đường dẫn
            }

            IteamGioHang itemgiohang = new IteamGioHang(MaSP);

            if (sp.SoLuongTon < itemgiohang.SoLuong)
            {
                return(View("ThongBao"));
            }
            lstGioHang.Add(itemgiohang);
            return(Redirect(strURL));
        }