public string AddToCartByStorage(string idtaikhoan, string idsizesanpham, int soluong)
        {
            SizeSanPham sizesanpham = context.SizeSanPham.Where(s => s.Id == Guid.Parse(idsizesanpham)).SingleOrDefault();
            int         maxsoluong  = sizesanpham.SoLuong ?? 0;

            GioHang giohang = new GioHang();

            giohang = context.GioHang.Where(gh => gh.IdTaiKhoan == Guid.Parse(idtaikhoan) && gh.IdSizeSanPham == Guid.Parse(idsizesanpham)).SingleOrDefault();
            if (giohang == null)
            {
                giohang               = new GioHang();
                giohang.IdTaiKhoan    = Guid.Parse(idtaikhoan);
                giohang.IdSizeSanPham = Guid.Parse(idsizesanpham);
                if (soluong > maxsoluong)
                {
                    giohang.SoLuong = maxsoluong;
                }
                else
                {
                    giohang.SoLuong = soluong;
                }
                giohang.TinhTrang = "Không khoá";
                context.GioHang.Add(giohang);
                context.SaveChanges();
            }
            return("Thêm vào giỏ hàng thành công");
        }
        public string CheckSoLuongCart(string idsizesanpham, int soluong)
        {
            SizeSanPham sizesanpham = context.SizeSanPham.Where(s => s.Id == Guid.Parse(idsizesanpham)).SingleOrDefault();
            int         maxsoluong  = sizesanpham.SoLuong ?? 0;

            if (soluong > maxsoluong)
            {
                return("Số lượng vượt quá hàng tồn kho");
            }
            else
            {
                return("Thêm vào giỏ hàng thành công");
            }
        }
        public IActionResult EditSP(string item_sua_ma, string item_sua_tensp, string item_sua_mau, string item_sua_hang, string item_sua_phanloai, string item_sua_gia, IFormFile item_sua_hinh, string item_sua_chitiet, string item_sua_giamgia, string item_sua_size, int?item_sua_soluong)
        {
            List <SizeSanPham> size = ctx.SizeSanPham.ToList();

            ViewBag.Size = size;
            var sp = ctx.SanPham.Where(s => s.MaSanPham == item_sua_ma).SingleOrDefault();

            if (item_sua_tensp != null)
            {
                sp.TenSanPham = item_sua_tensp;
            }
            if (item_sua_mau != null)
            {
                sp.Mau = item_sua_mau;
            }
            sp.IdHangSanPham = Guid.Parse(item_sua_hang);
            sp.PhanLoai      = item_sua_phanloai;
            if (item_sua_gia != null)
            {
                sp.Gia = float.Parse(item_sua_gia);
            }
            if (item_sua_hinh != null)
            {
                var path = Directory.GetCurrentDirectory() + @"/wwwroot/Hinh/SanPham/" + item_sua_hinh.FileName;
                using (var stream = new FileStream(path, FileMode.Create))
                {
                    item_sua_hinh.CopyTo(stream);
                }
                sp.Hinh = item_sua_hinh.FileName;
            }
            if (item_sua_chitiet != null)
            {
                sp.ChiTiet = item_sua_chitiet;
            }
            if (item_sua_giamgia != null)
            {
                sp.GiamGia = float.Parse(item_sua_giamgia);
            }
            ctx.SaveChanges();
            if (item_sua_size != "không")
            {
                SizeSanPham sizesp = new SizeSanPham();
                sizesp         = ctx.SizeSanPham.Where(s => s.Id == Guid.Parse(item_sua_size)).SingleOrDefault();
                sizesp.SoLuong = item_sua_soluong;
                ctx.SaveChanges();
            }
            return(RedirectToAction("ListSP", new { thongbao = "Sửa thành công!!!" }));
        }
        public IActionResult InThongBao(SizeSanPham size)
        {
            string tentk = HttpContext.Session.GetString("TenDangNhap");

            List <SizeSanPham> test = ctx.SizeSanPham.Where(s => s.IdSanPhamNavigation.IdTaiKhoanNavigation.TenDangNhap == tentk && s.SoLuong == 0)
                                      .Include(s => s.IdSanPhamNavigation)
                                      .Include(s => s.IdSanPhamNavigation.IdTaiKhoanNavigation)
                                      .ToList();

            //TempData["AlertMessage"] = message;

            //foreach (var item in test)
            //{
            //    message = "Sản phẩm" + item.IdSanPhamNavigation.TenSanPham + "đã hết size" + item.Size;
            //}
            return(PartialView(test));
        }
        public GioHang AddSingleItem(KeyValuePair <string, int> item)
        {
            //Khai báo
            GioHang     giohang     = new GioHang();
            TaiKhoan    taikhoan    = new TaiKhoan();
            SanPham     sanpham     = new SanPham();
            SizeSanPham sizesanpham = new SizeSanPham();

            //Lấy dữ liệu cho từng class
            sizesanpham = context.SizeSanPham.Where(s => s.Id == Guid.Parse(item.Key)).SingleOrDefault();
            sanpham     = context.SanPham.Where(sp => sp.Id == sizesanpham.IdSanPham).SingleOrDefault();
            taikhoan    = context.TaiKhoan.Where(tk => tk.Id == sanpham.IdTaiKhoan).SingleOrDefault();

            giohang.IdSizeSanPham           = Guid.Parse(item.Key);
            giohang.IdTaiKhoan              = Guid.Parse("3BA4CBB1-98AC-4768-BCE2-0B226C49DC56"); //Code cứng là đúng r do cho đại k có đăng nhập :v CẤM XOÁ
            giohang.SoLuong                 = item.Value;
            giohang.TinhTrang               = "Không khoá";
            giohang.IdSizeSanPhamNavigation = sizesanpham;
            giohang.IdTaiKhoanNavigation    = taikhoan;
            giohang.IdSizeSanPhamNavigation.IdSanPhamNavigation = sanpham;

            return(giohang);
        }
        public string CheckDonHang(string tendangnhap)
        {
            TaiKhoan taikhoan = context.TaiKhoan.Where(tk => tk.TenDangNhap == tendangnhap).SingleOrDefault();

            List <GioHang> listgiohang = context.GioHang.Where(gh => gh.IdTaiKhoan == taikhoan.Id).ToList();

            foreach (var item in listgiohang)
            {
                SizeSanPham sizesanpham = context.SizeSanPham.Where(s => s.Id == item.IdSizeSanPham).Include(s => s.IdSanPhamNavigation).SingleOrDefault();
                if (sizesanpham.TinhTrang == "Khoá")
                {
                    string thongbao = "";
                    thongbao = "Sản phẩm " + sizesanpham.IdSanPhamNavigation.TenSanPham + " đã hết kinh doanh. Vui lòng gỡ sản phẩm khỏi giỏ hàng";
                    return(thongbao);
                }
                if (item.SoLuong > sizesanpham.SoLuong)
                {
                    string thongbao = "";
                    thongbao = sizesanpham.IdSanPhamNavigation.TenSanPham + " có số lượng vượt quá tồn kho (SL kho: " + sizesanpham.SoLuong + ")";
                    return(thongbao);
                }
            }
            return("Đặt hàng thành công");
        }
        public int GetQuantity(string id)
        {
            SizeSanPham size = ctx.SizeSanPham.Where(s => s.Id == Guid.Parse(id)).SingleOrDefault();

            return(size.SoLuong ?? 0);
        }
        public int GetSoLuong(string id)
        {
            SizeSanPham sizesanpham = context.SizeSanPham.Where(s => s.Id == Guid.Parse(id)).SingleOrDefault();

            return(sizesanpham.SoLuong ?? 0);
        }
        public void CreateDonDatHang(string tendangnhap, string iddiachi, double tongtien)
        {
            DonHang latestDonHang = context.DonHang.OrderByDescending(pd => int.Parse(pd.MaDonHang.Substring(3))).FirstOrDefault();
            string  latestMa      = "";

            if (latestDonHang == null)
            {
                latestMa = "DH-1";
            }
            else
            {
                int ma = int.Parse(latestDonHang.MaDonHang.Substring(3));
                latestMa = "DH-" + (ma + 1).ToString();
            }

            //Thêm đơn hàng
            TaiKhoan taikhoan = context.TaiKhoan.Where(tk => tk.TenDangNhap == tendangnhap).SingleOrDefault();
            DiaChi   diachi   = context.DiaChi.Where(dc => dc.Id == Guid.Parse(iddiachi)).Include(dc => dc.IdTaiKhoanNavigation).Include(dc => dc.IdTinhThanhNavigation).SingleOrDefault();

            Guid guid = Guid.Parse(Guid.NewGuid().ToString().ToUpper());

            DonHang donhang = new DonHang();

            donhang.Id         = guid;
            donhang.MaDonHang  = latestMa;
            donhang.IdTaiKhoan = taikhoan.Id;
            donhang.DiaChiGiao = diachi.Duong + " " + diachi.IdTinhThanhNavigation.TenTinhThanh;
            donhang.NgayTao    = DateTime.Now;
            donhang.TongTien   = tongtien;
            donhang.TinhTrangDanhGiaCustomer = "Chưa đánh giá";
            donhang.TinhTrang = "Chưa xử lý";

            context.DonHang.Add(donhang);
            context.SaveChanges();

            //Thêm chi tiết đơn hàng
            List <GioHang> listgiohang = context.GioHang.Where(gh => gh.IdTaiKhoan == taikhoan.Id).ToList();

            foreach (var item in listgiohang)
            {
                SizeSanPham sizesanpham = context.SizeSanPham.Where(s => s.Id == item.IdSizeSanPham).SingleOrDefault();
                SanPham     sanpham     = context.SanPham.Where(s => s.Id == sizesanpham.IdSanPham).SingleOrDefault();
                double      dongia      = 0;
                double      giamgia     = sanpham.GiamGia ?? 0;
                if (giamgia > 0)
                {
                    dongia = sanpham.Gia * (100 - sanpham.GiamGia) / 100 ?? 0;
                }
                else
                {
                    dongia = sanpham.Gia ?? 0;
                }

                ChiTietDonHang chitietdonhang = new ChiTietDonHang();
                chitietdonhang.IdDonHang           = guid;
                chitietdonhang.IdSizeSanPham       = item.IdSizeSanPham;
                chitietdonhang.SoLuong             = item.SoLuong;
                chitietdonhang.DonGia              = dongia;
                chitietdonhang.DiemCustomerDanhGia = 0;
                chitietdonhang.DiemMerchantDanhGia = 0;
                chitietdonhang.TinhTrangChiTiet    = "Chưa xử lý";
                context.ChiTietDonHang.Add(chitietdonhang);
                context.SaveChanges();

                //SỬa SizeSanPham
                sizesanpham.SoLuong = sizesanpham.SoLuong - item.SoLuong;
                context.SaveChanges();
            }

            //Xoá lịch sử giỏ hàng
            GioHangBUS giohangbus = new GioHangBUS();

            giohangbus.DeleteAllFromCart(taikhoan.Id.ToString());
        }