public IActionResult XemDanhSachSanPham() { var dbContext = new shopContext(); var sanpham = (from sp in dbContext.Sanpham join pl in dbContext.Phanloai on sp.PhanLoaiId equals pl.PhanLoaiId join ha in dbContext.Hinhanh on sp.HinhAnhId equals ha.HinhAnhId join km in dbContext.Khuyenmai on sp.KhuyenMaiId equals km.KhuyenMaiId into x from subpet in x.DefaultIfEmpty() select new { idSanPham = sp.SanPhamId, tensp = sp.TenSanPham, mota = sp.Mota, giabanle = sp.GiaBanLe, trangThai = sp.TrangThai, TenLoai = pl.TenLoai, phantramgiam = subpet.PhanTramGiam, hinhanh = ha.TenFile }); List <Sanpham> List = new List <Sanpham>(); foreach (var item in sanpham) { Sanpham sp = new Sanpham(); Hinhanh ha = new Hinhanh(); Khuyenmai km = new Khuyenmai(); Phanloai pl = new Phanloai(); sp.SanPhamId = item.idSanPham; sp.TenSanPham = item.tensp; sp.Mota = item.mota; sp.GiaBanLe = item.giabanle; sp.TrangThai = item.trangThai; pl.TenLoai = item.TenLoai; km.PhanTramGiam = item.phantramgiam * 100; ha.TenFile = item.hinhanh; sp.PhanLoai = pl; sp.HinhAnh = ha; sp.KhuyenMai = km; List.Add(sp); } ViewBag.sanpham = List; return(View()); }
public IActionResult DatHang(int id) { var dbContext = new shopContext(); var sanpham = (from sp in dbContext.Sanpham where sp.SanPhamId == id select sp).ToList(); var ListSP = (from sp in dbContext.Sanpham join h in dbContext.Hinhanh on sp.HinhAnhId equals h.HinhAnhId join km in dbContext.Khuyenmai on sp.KhuyenMaiId equals km.KhuyenMaiId into x from subkm in x.DefaultIfEmpty() select new { PhanLoaiId = sp.PhanLoaiId, SanPhamId = sp.SanPhamId, TenSanPham = sp.TenSanPham, GiaBanLe = sp.GiaBanLe, HinhAnh = h.TenFile, PhanTramGiam = subkm.PhanTramGiam, KhuyenmaiId = sp.KhuyenMaiId }); List <Sanpham> List = new List <Sanpham>(); foreach (var item in ListSP) { var sp = new Sanpham(); var h = new Hinhanh(); var k = new Khuyenmai(); float?giaSauGiam = item.GiaBanLe - item.GiaBanLe * item.PhanTramGiam; sp.PhanLoaiId = item.PhanLoaiId; sp.SanPhamId = item.SanPhamId; sp.TenSanPham = item.TenSanPham; sp.GiaBanLe = item.GiaBanLe; h.TenFile = item.HinhAnh; k.PhanTramGiam = item.PhanTramGiam * 100; sp.KhuyenMaiId = item.KhuyenmaiId; sp.GiaGoc = giaSauGiam; sp.HinhAnh = h; sp.KhuyenMai = k; List.Add(sp); } ViewData["listSP"] = List; var PhanLoai = (from pl in dbContext.Phanloai orderby pl.PhanLoaiId select pl); List <Phanloai> ListPL = new List <Phanloai>(); foreach (var item in PhanLoai) { Phanloai phanloai = new Phanloai(); phanloai.PhanLoaiId = item.PhanLoaiId; phanloai.TenLoai = item.TenLoai; ListPL.Add(phanloai); } ViewData["listPL"] = ListPL; //lay ma khuyen mai cua san pham float?phantramKM = 0; if (sanpham[0].KhuyenMaiId != null) { var km = (from khuyenmai in dbContext.Khuyenmai where khuyenmai.KhuyenMaiId == sanpham[0].KhuyenMaiId select khuyenmai).ToList(); phantramKM = km[0].PhanTramGiam; } //-------------------------- var gioHangSession = HttpContext.Session.GetString("gioHangSession"); if (gioHangSession == null) { //chưa có giỏ hàng (khởi tạo) var KichThuoc = (from kt in dbContext.Kichthuoc where kt.SanPhamId == id select kt).ToList(); var ktId = 0; foreach (var item in KichThuoc) { if (item.TenKichThuoc == "Nhỏ") { ktId = item.KichThuocid; } } List <Chitiethoadon> ListChiTietHoaDon = new List <Chitiethoadon>(); Chitiethoadon chitiethoadon = new Chitiethoadon(); chitiethoadon.SanPhamId = id; chitiethoadon.SoLuong = 1; chitiethoadon.KichThuocId = ktId; chitiethoadon.TongTien = (float)(sanpham[0].GiaBanLe * 1 - sanpham[0].GiaBanLe * phantramKM); ListChiTietHoaDon.Add(chitiethoadon); HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(ListChiTietHoaDon)); } else { // nếu đã có giỏ hàng sẵn List <Chitiethoadon> listCart = JsonConvert.DeserializeObject <List <Chitiethoadon> >(HttpContext.Session.GetString("gioHangSession")); // kiểm tra sản phẩm thêm vào có tồn tại trong giỏ hàng chưa int flag = 0; for (int i = 0; i < listCart.Count; i++) { if (listCart[i].SanPhamId == id) { // listCart.RemoveAt(i); flag = 1; } } if (flag == 0)// giỏ hàng chưa có sản phẩm này { var KichThuoc = (from kt in dbContext.Kichthuoc where kt.SanPhamId == id select kt).ToList(); var ktId = 0; foreach (var item in KichThuoc) { if (item.TenKichThuoc == "Nhỏ") { ktId = item.KichThuocid; } } Chitiethoadon chitiethoadon = new Chitiethoadon(); chitiethoadon.SanPhamId = id; chitiethoadon.SoLuong = 1; chitiethoadon.KichThuocId = ktId; chitiethoadon.TongTien = (float)(sanpham[0].GiaBanLe * 1 - sanpham[0].GiaBanLe * phantramKM); listCart.Add(chitiethoadon); HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(listCart)); } else // giỏ hàng đã có sản phẩm // nếu có rồi thì giữ nguyên như cũ { } } //--------------------------- //hiển thị giỏ hàng //----------------------------- float?TongTien = 0; List <Chitiethoadon> chiTietHoaDonss = JsonConvert.DeserializeObject <List <Chitiethoadon> >(HttpContext.Session.GetString("gioHangSession")); List <Chitiethoadon> ListSanPhamCart = new List <Chitiethoadon>(); for (int i = 0; i < chiTietHoaDonss.Count(); i++) { var gh = (from sp in dbContext.Sanpham join kt in dbContext.Kichthuoc on sp.SanPhamId equals kt.SanPhamId where kt.KichThuocid == chiTietHoaDonss[i].KichThuocId select new { masp = sp.SanPhamId, tensp = sp.TenSanPham.ToString(), GiaBanLe = sp.GiaBanLe, kichThuocId = kt.KichThuocid, TenKichThuoc = kt.TenKichThuoc.ToString(), GiaThem = kt.GiaThem, soluong = chiTietHoaDonss[i].SoLuong, tongtien = chiTietHoaDonss[i].TongTien.ToString() } ).ToList(); foreach (var x in gh) { Chitiethoadon ct = new Chitiethoadon(); Sanpham sp = new Sanpham(); Kichthuoc kt = new Kichthuoc(); ct.KichThuocId = x.kichThuocId; kt.TenKichThuoc = x.TenKichThuoc; kt.GiaThem = x.GiaThem; ct.SanPhamId = x.masp; sp.TenSanPham = x.tensp; sp.GiaBanLe = x.GiaBanLe; ct.SoLuong = x.soluong; float tong = float.Parse(x.tongtien); ct.TongTien = tong; TongTien = TongTien + ct.TongTien; ct.SanPham = sp; ct.KichThuoc = kt; ListSanPhamCart.Add(ct); } } HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(ListSanPhamCart)); ViewBag.tongtien = TongTien; ViewBag.gioHang = ListSanPhamCart; //--------------------------------- // ViewBag.gioHang = new List<Chitiethoadon>(); return(View(sanpham)); }