public ActionResult AddToCart(string productID)
 {
     try
     {
         var account = Session["account"] as TAIKHOANDANGNHAP;
         if (account != null)
         {
             GIOHANG toUpdate = db.GIOHANGs.FirstOrDefault(a => a.ID_NGUOIMUA == account.ID_THANHVIEN && a.MAHANGHOA == productID);
             if (toUpdate == null)
             {
                 GIOHANG giohang = new GIOHANG();
                 giohang.ID_NGUOIMUA = account.ID_THANHVIEN.Trim();
                 giohang.MAHANGHOA   = productID.Trim();
                 giohang.NGAYTHEM    = DateTime.Now;
                 giohang.SOLUONG     = 1;
                 db.GIOHANGs.Add(giohang);
                 db.SaveChanges();
             }
             else
             {
                 toUpdate.SOLUONG += 1;
                 db.SaveChanges();
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
     return(RedirectToAction("ProductDetail", "Home", new { @productID = productID }));
 }
        public ActionResult CheckoutProduct(string productID, string shipping, string voucherID)
        {
            var account     = Session["account"] as TAIKHOANDANGNHAP;
            var newCheckout = "";

            try
            {
                const string chars        = "0123456789";
                DATHANG      toAdd        = new DATHANG();
                DONHANG      toAddDonHang = new DONHANG();

                var voucherInfo = (from system_voucher in db.VOUCHERs
                                   where system_voucher.MACODE == voucherID
                                   join loai_voucher in db.LOAIVOUCHERs
                                   on system_voucher.LOAIVOUCHER equals loai_voucher.MALOAIVOUCHER
                                   select new
                {
                    mucgia = loai_voucher.MUCGIA,
                    giamtoida = loai_voucher.GIAMTOIDA,
                    uudai = loai_voucher.UUDAI
                }).SingleOrDefault();

                List <DATHANG> found;
                Random         random = new Random();
                toAdd.NGUOIMUA = account.ID_THANHVIEN;
                do
                {
                    toAdd.ID_DONHANG        = new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray());
                    toAddDonHang.ID_DONHANG = toAdd.ID_DONHANG;
                    found = db.DATHANGs.Where(x => x.ID_DONHANG == toAdd.ID_DONHANG).ToList();
                    if (found.Count == 0)
                    {
                        break;
                    }
                } while (toAdd.ID_DONHANG != "");
                toAdd.NGAYDAT = DateTime.Now;

                var currentItem = (from GH in db.GIOHANGs
                                   where GH.ID_NGUOIMUA == account.ID_THANHVIEN && GH.MAHANGHOA == productID
                                   join HH in db.HANGHOAs on GH.MAHANGHOA equals HH.MAHANGHOA
                                   select new
                {
                    id_hh = HH.MAHANGHOA,
                    gianhang = HH.MAGIANHANG,
                    ten = HH.TENHANGHOA,
                    giathanh = HH.GIATHANH,
                    soluong = GH.SOLUONG
                }).SingleOrDefault();
                toAdd.TONGTIEN         = currentItem.giathanh * currentItem.soluong;
                toAdd.GIANHANG         = currentItem.gianhang;
                toAdd.MADVVC           = shipping;
                toAddDonHang.MASANPHAM = currentItem.id_hh;
                toAddDonHang.SOLUONG   = currentItem.soluong;
                toAddDonHang.DONGIA    = currentItem.giathanh;
                db.DATHANGs.Add(toAdd);
                db.DONHANGs.Add(toAddDonHang);
                db.SaveChanges();
                newCheckout = toAdd.ID_DONHANG;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(RedirectToAction("Payment", "Checkout", new { billID = newCheckout, voucher = voucherID }));
        }