예제 #1
0
 //[AdminFilter]
 public ActionResult ThemLuatOrSuaLuat(int id, string stringUrl)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         //lấy url trang trước đó
         ViewBag.Url = stringUrl;
         Luat luat = new Luat();
         //khi sửa luật, tức có id truyền vào
         if (id != 0)
         {
             luat = db.Luats.Where(x => x.Id == id).FirstOrDefault();
             luat.SuKienSelectedIDArray = luat.SuKienVT.Split(',').ToArray();
             luat.GiaiThich             = "tự cập nhật";
             ViewBag.ThongBao           = "Sửa luật";
         }
         else
         {
             luat.GiaiThich   = "tự cập nhật";
             luat.DoTinCay    = 100;
             ViewBag.ThongBao = "Thêm luật";
         }
         //luật vế trái chỉ lấy các sự kiện ở giao diện
         luat.SuKienCollection = db.SuKiens.ToList();
         //gán giá trị độ tin cậy mặc định là 100
         ViewBag.IdLuat = id;
         return(View(luat));
     }
 }
예제 #2
0
 //thêm giỏ hàng
 public ActionResult ThemGioHang(int MaSanPham, string strUrl)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         //Kiểm tra sản phẩm có tồn tại ko
         Laptop laptop = db.Laptops.SingleOrDefault(n => n.Id == MaSanPham);
         if (laptop == null)
         {
             Response.StatusCode = 404;
             return(null);
         }
         List <GioHang> lst = layGioHang();
         //kiểm tra sản phẩm đã tồn tại trong list chưa
         GioHang sp = lst.Find(n => n.iMaSanPham == MaSanPham);
         if (sp == null)
         {
             sp = new GioHang(MaSanPham);
             //Thêm sản phẩm vào list
             lst.Add(sp);
             return(Redirect(strUrl));
         }
         else
         {
             sp.iSoLuong++;
             return(Redirect(strUrl));
         }
     }
 }
예제 #3
0
        public ActionResult DangNhap(FormCollection f)
        {
            string sTaiKhoan = f["txtTaiKhoan"].ToString();
            string sMatKhau  = f.Get("txtMatKhau").ToString();

            using (TuVanLaptopEntities db = new TuVanLaptopEntities())
            {
                var v = db.KhachHangs.SingleOrDefault(n => n.TaiKhoan == sTaiKhoan);
                if (v != null)
                {
                    if (string.Compare(Crypto.Hash(sMatKhau), v.MatKhau) == 0)
                    {
                        ViewBag.ThongBao = "Chúc mừng bạn đăng nhập thành công !";
                        FormsAuthentication.SetAuthCookie(sTaiKhoan, false);
                        //KhachHang kh = db.KhachHangs.SingleOrDefault(n => n.TaiKhoan == sTaiKhoan && n.MatKhau == Crypto.Hash(sMatKhau));

                        Session["TaiKhoan"] = v;
                        //Session["UserName"] = kh.TaiKhoan.ToString();

                        TempData["message"] = "Bạn đã đăng nhập thành công";
                        //truyền usernam tới Index/Home
                        return(RedirectToAction("Index", "Home", new { username = v.TaiKhoan.ToString() }));
                    }
                    else
                    {
                    }
                }
            }
            //KhachHang kh = db.KhachHangs.SingleOrDefault(n => n.TaiKhoan == sTaiKhoan && n.MatKhau == sMatKhau);

            ViewBag.ThongBao = "Tên tài khoản hoặc mật khẩu không đúng!";
            return(View());
        }
예제 #4
0
 // GET: Home
 public ActionResult GetResult()
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         //List<ChiTietLaptop> ctlt = db.ChiTietLaptops.OrderBy(n => n.GiaBan).ToList();
         return(View(db.Laptops.OrderBy(n => n.NgayCapNhat).Where(n => n.HeDieuHanh.Name == "Dell").ToList()));
     }
 }
예제 #5
0
 public ActionResult Edit(SuKien sk, string stringurl)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         db.Entry(sk).State = EntityState.Modified;
         db.SaveChanges();
         return(Redirect(stringurl));
     }
 }
예제 #6
0
 public ActionResult NotFoundSanPham(int?page)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         int pageSize   = 8;
         int pageNumber = (page ?? 1);
         return(PartialView(db.Laptops.OrderBy(n => n.NgayCapNhat).ToPagedList(pageNumber, pageSize)));
     }
 }
예제 #7
0
 //[AdminFilter]
 public ActionResult QuanLiSuKien(int?page)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         int pageNumber = (page ?? 1);
         int pageSize   = 8;
         return(View(db.SuKiens.ToList().OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize)));
     }
 }
예제 #8
0
 public ActionResult loaddata()
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         // dc.Configuration.LazyLoadingEnabled = false; // if your table is relational, contain foreign key
         var data = db.SuKiens.OrderBy(a => a.Id).ToList();
         return(Json(new { data = data }, JsonRequestBehavior.AllowGet));
     }
 }
예제 #9
0
 //show kết quả
 public ActionResult ShowResult(string id)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         if (id.Contains("a"))
         {
             List <Laptop> laptops = db.Laptops.Where(x => x.HeDieuHanh.Name == "Dell").ToList();
             return(PartialView(laptops));
         }
         return(null);
     }
 }
예제 #10
0
 public ActionResult Edit(int id, string stringUrl)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         SuKien sk = db.SuKiens.SingleOrDefault(x => x.Id == id);
         if (sk == null)
         {
             return(null);
         }
         ViewBag.Url = stringUrl;
         return(View(sk));
     }
 }
예제 #11
0
 public ActionResult ChinhSuaSanPham(Laptop laptop)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         //Thêm vào cơ sở dữ liệu
         if (ModelState.IsValid)
         {
             db.Entry(laptop).State = System.Data.Entity.EntityState.Modified;
             db.SaveChanges();
         }
         return(RedirectToAction("QuanLiSanPham", "Admin"));
     }
 }
예제 #12
0
        // GET: Home
        public ActionResult Index(int?page, string username)
        {
            using (TuVanLaptopEntities db = new TuVanLaptopEntities())
            {
                //lấy username sau khi đăng nhập thành công, username chuyển từ controller Login tới
                //ko dùng cách này, do khi redict tới một trang khác thì usernam ko đc lưu ở partial chức năng người dùng
                //TempData["user"] = username;

                int pageSize   = 8;
                int pageNumber = (page ?? 1);
                //List<ChiTietLaptop> ctlt = db.ChiTietLaptops.OrderBy(n => n.GiaBan).ToList();
                return(View(db.Laptops.OrderBy(n => n.NgayCapNhat).ToPagedList(pageNumber, pageSize)));
            }
        }
예제 #13
0
 public ActionResult Delete(int id)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         Laptop laptop = db.Laptops.SingleOrDefault(n => n.Id == id);
         if (laptop == null)
         {
             return(null);
         }
         db.Laptops.Remove(laptop);
         db.SaveChanges();
         return(RedirectToAction("QuanLiSanPham", "Admin"));
     }
 }
예제 #14
0
 public ActionResult ChinhSuaSanPham(int MaSanPham)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         Laptop laptop = db.Laptops.SingleOrDefault(n => n.Id == MaSanPham);
         if (laptop == null)
         {
             Response.StatusCode = 404;
             return(null);
         }
         ViewBag.HangLaptopId = new SelectList(db.HangLapTops.ToList(), "Id", "Name", laptop.HangLaptopId);
         ViewBag.HeDieuHanhId = new SelectList(db.HeDieuHanhs.ToList(), "Id", "Name", laptop.HeDieuHanhId);
         return(View(laptop));
     }
 }
예제 #15
0
 public ActionResult GiamDoTinCay(int MaLuat, string strUrl, int dotincay)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         Luat luat = db.Luats.SingleOrDefault(n => n.Id == MaLuat);
         if (luat == null)
         {
             return(null);
         }
         luat.DoTinCay        = dotincay - 1;
         db.Entry(luat).State = EntityState.Modified;
         db.SaveChanges();
     }
     return(Redirect(strUrl));
 }
예제 #16
0
 public ActionResult XemChiTiet(int MaLaptop = 0)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         Laptop laptop = db.Laptops.SingleOrDefault(n => n.Id == MaLaptop);
         if (laptop == null)
         {
             Response.StatusCode = 404;
             return(null);
         }
         ViewBag.TenHangSanXuat = db.HangLapTops.Single(n => n.Id == laptop.HangLaptopId).Name;
         ViewBag.TenHeDieuHanh  = db.HeDieuHanhs.Single(n => n.Id == laptop.HeDieuHanhId).Name;
         return(View(laptop));
     }
 }
예제 #17
0
 public ActionResult ResetDoTinCayNew(int MaLuat, string strUrl, int dotincay)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         Luat luat = db.Luats.SingleOrDefault(n => n.Id == MaLuat);
         if (luat == null)
         {
             return(null);
         }
         luat.DoTinCay        = dotincay;
         db.Entry(luat).State = EntityState.Modified;
         db.SaveChanges();
         return(Content(dotincay.ToString()));
     }
 }
예제 #18
0
 public ActionResult Login(string username, string password)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         Admin lg = db.Admins.FirstOrDefault(n => n.Username == username);
         if (lg != null && lg.Password.SequenceEqual(SHA1.Create().ComputeHash(Encoding.Unicode.GetBytes(password))))
         {
             FormsAuthentication.SetAuthCookie(username, false);
             //Session["IsAdmin"] = true; //lưu session khi đăng nhập admin thành công
             Session["IsAdmin"] = lg; //thử hiện username admin
             return(RedirectToAction("QuanLiSanPham", "Admin"));
         }
         ViewBag.ThongBao = "Tài khoản hoặc mật khẩu không đúng";
         return(View());
     }
 }
예제 #19
0
 public ActionResult KetQuaTimKiem(string txtTimKiem)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         if (!String.IsNullOrEmpty(txtTimKiem))
         {
             List <Laptop> sanphams = db.Laptops.Where(x => x.Name.Contains(txtTimKiem)).ToList();
             if (sanphams.Count == 0)
             {
                 TempData["message"] = "Không có sản phẩm thỏa mãn";
             }
             TempData["message"] = "Có " + sanphams.Count() + " sản phẩm thỏa mãn";
             return(View(sanphams));
         }
         return(RedirectToAction("Index", "Home"));
     }
 }
예제 #20
0
        public ActionResult DatHang()
        {
            using (TuVanLaptopEntities db = new TuVanLaptopEntities())
            {
                //Kiểm tra đăng nhập
                if (Session["TaiKhoan"] == null || Session["TaiKhoan"].ToString() == "")
                {
                    return(RedirectToAction("DangNhap", "NguoiDung"));
                }
                //Kiểm tra giỏ hàng
                if (Session["Giohang"] == null)
                {
                    return(RedirectToAction("Index", "Home"));
                }

                DonHang        dh  = new DonHang();
                KhachHang      kh  = (KhachHang)Session["TaiKhoan"];
                List <GioHang> lst = layGioHang();
                if (lst.Count == 0)
                {
                    TempData["ThongBao"] = "Không có sản phẩm trong giỏ hàng, không thể đặt hàng";
                    return(RedirectToAction("GioHang"));
                }
                dh.MaKH              = kh.MaKH;
                dh.NgayDat           = DateTime.Now;
                dh.TinhTrangGiaoHang = false; //false là chưa giao hàng
                db.DonHangs.Add(dh);
                //Thêm chi tiết đơn hàng
                foreach (GioHang item in lst)
                {
                    ChiTietDonHang ctdh = new ChiTietDonHang();
                    ctdh.MaDonHang = dh.MaDonHang;
                    ctdh.MaSanPham = item.iMaSanPham;
                    ctdh.SoLuong   = item.iSoLuong;
                    ctdh.DonGia    = (decimal)item.dDonGia;
                    db.ChiTietDonHangs.Add(ctdh);
                }
                db.SaveChanges();
                Session["Giohang"] = null;
                return(RedirectToAction("Index", "Home"));
            }
        }
예제 #21
0
 //sửa giỏ hàng
 public ActionResult CapNhatGioHang(int MaSanPham, FormCollection f)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         //Kiểm tra sản phẩm có tồn tại ko
         Laptop laptop = db.Laptops.SingleOrDefault(n => n.Id == MaSanPham);
         if (laptop == null)
         {
             Response.StatusCode = 404;
             return(null);
         }
         List <GioHang> lst = layGioHang();
         GioHang        sp  = lst.SingleOrDefault(n => n.iMaSanPham == MaSanPham);
         if (sp != null)
         {
             sp.iSoLuong = int.Parse(f["txtSoLuong"].ToString());
         }
         return(RedirectToAction("SuaGioHang"));
     }
 }
예제 #22
0
        public ActionResult SaveSuKien(SuKien sk)
        {
            using (TuVanLaptopEntities db = new TuVanLaptopEntities())
            {
                //sk chưa tồn tại ta mới thêm
                //if (SuKien.SaveSuKien(sk) != null)
                //{
                //nếu không  lưu thành công sk
                if (!SuKien.SaveSuKien(sk))
                {
                    TempData["ThongBao"] = "Đã tồn tại sự kiện";
                    //return Redirect(ControllerContext.HttpContext.Request.UrlReferrer.ToString());
                    return(View());
                }
                //nếu lưu thành công
                return(Json(sk));

                //}
                //return PartialView("ThemSuKienPartial", sk);
            }
        }
예제 #23
0
        public ActionResult DangKy(KhachHang kh = null)
        {
            if (ModelState.IsValid)
            {
                //kiểm tra email đã tồn tại hay chưa(chưa làm)
                //password hasing
                kh.MatKhau        = Crypto.Hash(kh.MatKhau);
                kh.XacNhanMatKhau = Crypto.Hash(kh.XacNhanMatKhau);
                //lưu vào database
                using (TuVanLaptopEntities db = new TuVanLaptopEntities())
                {
                    db.KhachHangs.Add(kh);
                    db.SaveChanges();
                }

                ViewBag.ThongBao = "Chúc mừng bạn đăng ký thành công !";
                return(RedirectToAction("DangNhap", "NguoiDung"));
            }
            ViewBag.ThongBao = "Đăng kí không thành công!";
            return(View(kh));
        }
예제 #24
0
 public ActionResult ThemSanPham(Laptop laptop, HttpPostedFileBase fileUpload)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         //Đưa dữ liệu vào dropdownlist
         ViewBag.HangLaptopId = new SelectList(db.HangLapTops.ToList(), "Id", "Name");
         ViewBag.HeDieuHanhId = new SelectList(db.HeDieuHanhs.ToList(), "Id", "Name");
         //kiểm tra đường dẫn ảnh bìa
         if (fileUpload == null)
         {
             ViewBag.ThongBao = "Chọn hình ảnh";
             return(View());
         }
         //Thêm vào cơ sở dữ liệu
         if (ModelState.IsValid)
         {
             //Lưu tên file
             var fileName = Path.GetFileName(fileUpload.FileName);
             //Lưu đường dẫn của file
             var path = Path.Combine(Server.MapPath("~/HinhAnhSanPham"), fileName);
             //Kiểm tra hình ảnh đã tồn tại chưa
             if (System.IO.File.Exists(path))
             {
                 ViewBag.ThongBao = "Hình ảnh đã tồn tại";
                 return(View());
             }
             else
             {
                 fileUpload.SaveAs(path);
             }
             laptop.AnhBia = fileUpload.FileName;
             db.Laptops.Add(laptop);
             db.SaveChanges();
         }
         return(RedirectToAction("QuanLiSanPham", "Admin"));
     }
 }
예제 #25
0
 //xóa giỏ hàng
 public ActionResult XoaGioHang(int MaSanPham)
 {
     using (TuVanLaptopEntities db = new TuVanLaptopEntities())
     {
         //Kiểm tra sản phẩm có tồn tại ko
         Laptop sach = db.Laptops.SingleOrDefault(n => n.Id == MaSanPham);
         if (sach == null)
         {
             Response.StatusCode = 404;
             return(null);
         }
         List <GioHang> lst = layGioHang();
         GioHang        sp  = lst.SingleOrDefault(n => n.iMaSanPham == MaSanPham);
         if (sp != null)
         {
             lst.RemoveAll(n => n.iMaSanPham == MaSanPham);
         }
         if (lst.Count == 0)
         {
             return(RedirectToAction("Index", "Home"));
         }
         return(RedirectToAction("SuaGioHang"));
     }
 }
예제 #26
0
        public ActionResult Index(FormCollection model, string submit)
        {
            //tổng độ tin cậy của luật tạo mới
            int dotincay = 0;
            //số lượng luật đã lấy
            int soluongluatbandau = 0;
            //phụ thuộc vào các yếu tố của người dùng(nghề nghiệp,....)
            bool luattontai = true;
            //danh sách câu query thu đc từ các sự kiện
            List <String> queryvephai = new List <String>();

            //lấy yêu cầu từ người dùng string[string]
            //chuyển yêu cầu đó sang string[int]
            //Từ string[int] của sự kiện vế trái, ta lấy đc id của sự kiện vế phải
            //chuyển id của sự kiện vế phải sang string(sql)
            //từ sql ta truy vấn đc sản phẩm
            using (TuVanLaptopEntities db = new TuVanLaptopEntities())
            {
                StringBuilder value = new StringBuilder();
                //mảng sự kiện vế trải (int) của Luật
                List <String> list = new List <String>();
                //danh sách yêu cầu(string)
                List <String> yeucau = new List <String>();

                //kiểm tra submit có đc clicked chưa
                if (string.IsNullOrEmpty(submit))
                {
                    TempData["message"] = "Vui lòng nhấn submit";
                    return(RedirectToAction("NotFoundSanPham", "Home"));
                }

                //lấy id của item selected
                if (model["Gioitinhs"].ToString() != "")
                {
                    list.Add(SuKien.getSuKienId(model["Gioitinhs"].ToString())); //lấy đc id sk
                    yeucau.Add(model["Gioitinhs"].ToString());
                    //kiểm tra luật với sự kiện này có tồn tại hay không
                    //nếu không tồn tại=> trả về false
                    if (!Luat.CheckLuatTonTaiWithVeTrai(SuKien.getSuKienId(model["Gioitinhs"].ToString())))
                    {
                        luattontai = false;
                    }
                    //nếu luật có tồn tại, lấy query vế phải của luật theo sự kiện vế trái
                    else
                    {
                        //từ sự kiện ID lấy đc câu query của luật
                        string vp = Luat.getVePhaiByVeTrai(SuKien.getSuKienId(model["Gioitinhs"].ToString()));
                        dotincay += Luat.GetDoTinCayByVetrai(SuKien.getSuKienId(model["Gioitinhs"].ToString()));
                        soluongluatbandau++;
                        queryvephai.Add(vp);
                    }
                    //lưu trạng thái tư vấn của combobox
                    //TempData["GioiTinhs"] = new SelectList(db.GioiTinhs.ToList(), "Name", "Name", model["Gioitinhs"].ToString());
                }

                if (model["NgheNghieps"].ToString() != "")
                {
                    yeucau.Add(model["NgheNghieps"].ToString());
                    list.Add(SuKien.getSuKienId(model["NgheNghieps"].ToString()));

                    if (!Luat.CheckLuatTonTaiWithVeTrai(SuKien.getSuKienId(model["NgheNghieps"].ToString())))
                    {
                        luattontai = false;
                    }
                    else
                    {
                        //từ sự kiện ID lấy đc câu query của luật
                        string vp = Luat.getVePhaiByVeTrai(SuKien.getSuKienId(model["NgheNghieps"].ToString()));
                        dotincay += Luat.GetDoTinCayByVetrai(SuKien.getSuKienId(model["NgheNghieps"].ToString()));
                        soluongluatbandau++;
                        queryvephai.Add(vp);
                    }
                }
                if (model["MucDichs"].ToString() != "")
                {
                    yeucau.Add(model["MucDichs"].ToString());
                    list.Add(SuKien.getSuKienId(model["MucDichs"].ToString()));

                    if (!Luat.CheckLuatTonTaiWithVeTrai(SuKien.getSuKienId(model["MucDichs"].ToString())))
                    {
                        luattontai = false;
                    }
                    else
                    {
                        //từ sự kiện ID lấy đc câu query của luật
                        string vp = Luat.getVePhaiByVeTrai(SuKien.getSuKienId(model["MucDichs"].ToString()));
                        dotincay += Luat.GetDoTinCayByVetrai(SuKien.getSuKienId(model["MucDichs"].ToString()));
                        soluongluatbandau++;
                        queryvephai.Add(vp);
                    }
                }
                if (model["YeuCauGiaTiens"].ToString() != "")
                {
                    yeucau.Add(model["YeuCauGiaTiens"].ToString());
                    list.Add(SuKien.getSuKienId(model["YeuCauGiaTiens"].ToString()));

                    if (Luat.CheckLuatTonTaiWithVeTrai(SuKien.getSuKienId(model["YeuCauGiaTiens"].ToString())))
                    {
                        dotincay += Luat.GetDoTinCayByVetrai(SuKien.getSuKienId(model["YeuCauGiaTiens"].ToString()));
                        soluongluatbandau++;
                    }
                }
                if (model["HangLaptops"].ToString() != "")
                {
                    yeucau.Add(model["HangLaptops"].ToString());
                    list.Add(SuKien.getSuKienId(model["HangLaptops"].ToString()));

                    if (Luat.CheckLuatTonTaiWithVeTrai(SuKien.getSuKienId(model["HangLaptops"].ToString())))
                    {
                        dotincay += Luat.GetDoTinCayByVetrai(SuKien.getSuKienId(model["HangLaptops"].ToString()));
                        soluongluatbandau++;
                    }
                }

                if (model["HeDieuHanhs"].ToString() != "")
                {
                    yeucau.Add(model["HeDieuHanhs"].ToString());
                    list.Add(SuKien.getSuKienId(model["HeDieuHanhs"].ToString()));


                    if (Luat.CheckLuatTonTaiWithVeTrai(SuKien.getSuKienId(model["HeDieuHanhs"].ToString())))
                    {
                        dotincay += Luat.GetDoTinCayByVetrai(SuKien.getSuKienId(model["HeDieuHanhs"].ToString()));
                        soluongluatbandau++;
                    }
                }


                //lấy chuỗi query từ các các sự kiện 100%( giá tiền, hệ điều hành, hãng laptop)
                string mingia      = "";
                string maxgia      = "";
                string hangsanxuat = model["HangLaptops"].ToString();
                string hedieuhanh  = model["HeDieuHanhs"].ToString();
                if (model["YeuCauGiaTiens"].ToString() == "Trên 20 triệu")
                {
                    mingia = 20000000.ToString();
                }
                if (model["YeuCauGiaTiens"].ToString() == "Từ 15 đến 20 triệu")
                {
                    mingia = 15000000.ToString();
                    maxgia = 20000000.ToString();
                }
                if (model["YeuCauGiaTiens"].ToString() == "Từ 10 đến 15 triệu")
                {
                    mingia = 10000000.ToString();
                    maxgia = 15000000.ToString();
                }
                if (model["YeuCauGiaTiens"].ToString() == "Dưới 10 triệu")
                {
                    maxgia = 10000000.ToString();
                }
                //chuỗi thu đc từ các sự kiện 100%
                string simple = Laptop.getLaptopSimple(mingia, maxgia, hangsanxuat, hedieuhanh);
                if (simple != "")
                {
                    queryvephai.Add(simple);
                }
                #region ko có yêu cầu

                //đầu tiền kiểm tra xem có yêu cầu ko ( count của list)
                if (list.Count == 0)
                {
                    TempData["message"] = "Không có yêu cầu được đưa ra.Vui lòng chọn các mục để được tư vấn!";
                    return(RedirectToAction("NotFoundSanPham", "Home"));
                }
                #endregion
                //Nếu có yêu cầu ( list count!=0)
                //nếu chỉ chứa luật simple
                if (model["Gioitinhs"].ToString() == "" && model["NgheNghieps"].ToString() == "" && model["MucDichs"].ToString() == "")
                {
                    var sql     = "SELECT  * FROM dbo.Laptop WHERE " + simple;
                    var laptops = db.Laptops.SqlQuery(sql).ToList();

                    if (laptops == null)
                    {
                        TempData["message"] = "Truy vấn query!Chưa có sản phẩm gợi ý!";
                        return(RedirectToAction("NotFoundSanPham", "Home"));
                    }
                    ViewBag.ThongBao = "Truy vấn query!Có " + laptops.Count() + " sản phẩm được gợi ý!";
                    return(PartialView(laptops));
                }

                //nếu tồn tại luật ko simple
                //khi ấn tư vấn sẽ lấy đc mảng yêu cầu của khách hàng và điều kiện where
                string mangYeuCau = String.Join(",", yeucau.ToArray());
                string query      = String.Join(" AND ", queryvephai.ToArray());

                #region luật cũ
                //Xét luật đã tồn tại hay chưa dựa vào vế trái ArrayInt
                string vetraiArrayInt = String.Join(",", list.ToArray());

                //vế trái của luật có thể trùng nhau, vế phải khác nhau.
                //lấy luật có độ tin cậy cao nhất trong số các luật có vế trái==vetraiArrayInt
                string vephaiByvetraiArrayInt = Luat.getVePhaiByVeTrai(vetraiArrayInt);
                //nếu vế phải tồn tại, tức luật tồn tại
                //if (vephaiByvetraiArrayInt != null)
                //{
                //    //lấy luật có độ tin cậy cao nhất dựa vào vế trái([int]) đã xác định
                //    Luat luat = Luat.getLuatByVeTrai(vetraiArrayInt);

                //    var laptops = Laptop.getLaptopByVePhai(vephaiByvetraiArrayInt);
                //    if (laptops == null)
                //    {
                //        TempData["message"] = "Luật tồn tại-Chưa có sản phẩm gợi ý---\nYêu cầu: " + mangYeuCau;
                //        return RedirectToAction("Index", "Home");
                //    }
                //    //khi có sản phẩm, hiện section đánh giá độ tin cậy
                //    TempData["CheckLuatTonTai"] = "Luật tồn tại";
                //    //lấy id của luật đó:
                //    int id = luat.Id;
                //    TempData["LuatId"] = id;
                //    //mô tả luật
                //    TempData["MoTaLuat"] = Luat.GetMoTaLuat(id);
                //    //lấy độ tin cậy của luật đó
                //    TempData["DoTinCay"] = Luat.GetDoTinCay(id);

                //    ViewBag.ThongBao = "Luật tồn tại-Có: " + laptops.Count() + " sản phẩm được gợi ý!---" + "\nYêu cầu:" + mangYeuCau;
                //    return View(laptops);

                //}
                #endregion
                #region ko đủ sự kiện để tạo luật
                //Nếu luật chưa tồn tại, mới cần xét tự sinh luật
                //nếu luattontai là false tức ko lấy đủ số lượng slq query tự sinh
                //lúc này sẽ ko tự tạo ra đc câu lệnh sqlquery(cần Admin), thông báo người dùng
                if (luattontai == false)
                {
                    TempData["message"] = "Luật không tồn tại---\nYêu cầu: " + mangYeuCau;
                    return(RedirectToAction("NotFoundSanPham", "Home"));
                }
                #endregion
                #region đủ sự kiện để tạo luật mới
                //nếu luatontai là true, tức sẽ có luật mới tự sinh ra(nếu độ tin cậy cao hơn luật cũ)
                //hoặc sẽ lấy luật đã tồn tại
                else
                {
                    //ta đã có query và sư kiện vế trái=> tạo ra luật mới
                    //luật mới,lúc này chưa tạo mới
                    //Luat newluat = Luat.GetLuat(vetraiArrayInt, query, dotincay / (queryvephai.Count()), query);
                    Luat newluat = Luat.GetLuat(vetraiArrayInt, query, dotincay / soluongluatbandau, query);


                    //nếu tồn tại luật cũ
                    if (vephaiByvetraiArrayInt != null)
                    {
                        //lấy luật có độ tin cậy cao nhất dựa vào vế trái([int]) đã xác định
                        Luat luat = Luat.getLuatByVeTrai(vetraiArrayInt);

                        currentLuat = luat;
                        DoTinCayPartial();

                        //luật cũ có độ tin cậy cao hơn so với luật mới=>lấy luật cũ, ko tạo luật mới
                        if (luat.DoTinCay >= newluat.DoTinCay)
                        {
                            var laptopList = Laptop.getLaptopByVePhai(vephaiByvetraiArrayInt);


                            // hiện section đánh giá độ tin cậy
                            TempData["CheckLuatTonTai"] = "Luật tồn tại";
                            //lấy id của luật đó:
                            int idold = luat.Id;
                            TempData["LuatId"] = idold;
                            //mô tả luật
                            TempData["MoTaLuat"] = Luat.GetMoTaLuat(idold);
                            //lấy độ tin cậy của luật đó
                            TempData["DoTinCay"] = Luat.GetDoTinCay(idold);

                            if (laptopList == null)
                            {
                                TempData["message"] = "Luật tồn tại!Chưa có sản phẩm gợi ý---\nYêu cầu: " + mangYeuCau;
                                return(RedirectToAction("NotFoundSanPham", "Home"));
                            }
                            ViewBag.ThongBao = "Luật tồn tại!Có " + laptopList.Count() + " sản phẩm được gợi ý!---" + "\nYêu cầu:" + mangYeuCau;
                            return(PartialView(laptopList));
                        }
                        else
                        {
                            //nếu luật mới sinh ra có độ tin cậy cao hơn=> tạo luật mới
                            //tạo ở bước sau
                        }
                    }
                    Luat.SaveLuat(newluat);
                    var           queryfull = "SELECT  * FROM dbo.Laptop WHERE " + query;
                    List <Laptop> laptops   = db.Laptops.SqlQuery(queryfull).ToList();

                    //hiện section đánh giá độ tin cậy
                    TempData["CheckLuatTonTai"] = "Luật tồn tại";
                    //lấy id của luật đó:
                    int id = newluat.Id;
                    TempData["LuatId"] = id;
                    //mô tả luật
                    TempData["MoTaLuat"] = Luat.GetMoTaLuat(id);
                    //lấy độ tin cậy của luật đó
                    TempData["DoTinCay"] = Luat.GetDoTinCay(id);

                    if (laptops.Count == 0)
                    {
                        TempData["message"] = "Luật mới được tạo!Chưa có sản phẩm gợi ý---\nYêu cầu: " + mangYeuCau;
                        return(RedirectToAction("NotFoundSanPham", "Home"));
                    }


                    ViewBag.ThongBao = "Luật mới được tạo!Có " + laptops.Count() + " sản phẩm được gợi ý!---" + "\nYêu cầu:" + mangYeuCau;
                    return(PartialView(laptops));
                }
                #endregion
            }
        }
예제 #27
0
        //[AdminFilter]
        public ActionResult QuanLiLuat(int?page, string txtTimKiem, string search, string trash, string all)
        {
            int pageNumber = (page ?? 1);
            int pageSize   = 8;

            string message = "";

            using (TuVanLaptopEntities db = new TuVanLaptopEntities())
            {
                //kiểm tra nút search có đc click hay ko
                if (!string.IsNullOrEmpty(search))
                {
                    if (txtTimKiem != "")
                    {
                        string      vetrai   = SuKien.getIdByName(txtTimKiem);
                        List <Luat> luatList = db.Luats.Where(x => x.SuKienVT.Contains(vetrai)).ToList();
                        if (luatList.Count > 0)
                        {
                            foreach (var item in luatList)
                            {
                                item.sukienvetrais = Luat.ConvertIntArrayToStringArray(item.SuKienVT);
                                //item.sukienvephai = SuKien.getSuKienById(Convert.ToInt16(item.SukienVP));
                            }
                            message          = "Có  " + luatList.Count() + " luật thỏa mãn!";
                            ViewBag.ThongBao = message;
                            //db.Luats.ToList().OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize)
                            return(View(luatList.OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize)));
                        }
                        else
                        {
                            message = "Không có luật phù hợp!";
                        }
                    }
                    else
                    {
                        message = "Hãy nhập giá trị để tìm kiếm luật!";
                    }
                }
                //kiểm tra nút trash có đc click hay không
                if (!string.IsNullOrEmpty(trash))
                {
                    if (txtTimKiem != "")
                    {
                        string vetrai = SuKien.getIdByName(txtTimKiem);
                        //List<Luat> luatList = db.Luats.Where(x => x.SuKienVT.Contains(vetrai)).ToList();
                        //lọc theo txtvetrai đã đc convert tới int
                        List <Luat> listLuat = Luat.DeleteLuatByLuat(vetrai);
                        if (listLuat == null)
                        {
                            message = "Không có luật nào bị xóa!";
                        }
                        else
                        {
                            message = "Có " + listLuat.Count() + " luật bị xóa!";
                        }
                    }
                    else
                    {
                        message = "Hãy nhập giá trị để xóa!";
                    }
                }
                if (!string.IsNullOrEmpty(all))
                {
                    List <Luat> allLuat = db.Luats.ToList();
                    foreach (var item in allLuat)
                    {
                        item.sukienvetrais = Luat.ConvertIntArrayToStringArray(item.SuKienVT);
                        //item.sukienvephai = SuKien.getSuKienById(Convert.ToInt16(item.SukienVP));
                    }
                    message          = "Có tất cả " + allLuat.Count() + " luật!";
                    ViewBag.ThongBao = message;
                    return(View(allLuat.OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize)));
                }

                List <Luat> luats = db.Luats.ToList();
                foreach (var item in luats)
                {
                    item.sukienvetrais = Luat.ConvertIntArrayToStringArray(item.SuKienVT);
                    //item.sukienvephai = SuKien.getSuKienById(Convert.ToInt16(item.SukienVP));
                }
                ViewBag.ThongBao = message;
                //db.Luats.ToList().OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize)
                return(View(luats.OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize)));

                //if (txtTimKiem ==null)
                //{
                //    List<Luat> luats = db.Luats.ToList();
                //    foreach (var item in luats)
                //    {
                //        item.sukienvetrais = Luat.ConvertIntArrayToStringArray(item.SuKienVT);
                //        //item.sukienvephai = SuKien.getSuKienById(Convert.ToInt16(item.SukienVP));
                //    }
                //    //db.Luats.ToList().OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize)
                //    return View(luats.OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize));
                //}
                //else
                //{
                //    string vetrai = SuKien.getIdByName(txtTimKiem);
                //    List<Luat> luats = db.Luats.Where(x => x.SuKienVT.Contains(vetrai)).ToList();

                //    foreach (var item in luats)
                //    {
                //        item.sukienvetrais = Luat.ConvertIntArrayToStringArray(item.SuKienVT);
                //        //item.sukienvephai = SuKien.getSuKienById(Convert.ToInt16(item.SukienVP));
                //    }
                //    //db.Luats.ToList().OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize)
                //    return View(luats.OrderBy(n => n.Id).ToPagedList(pageNumber, pageSize));
                //}
            }
        }
예제 #28
0
        public ActionResult Result(FormCollection model)
        {
            string speech = model["text"].ToString();

            //TempData["message"] = "Nội dung yêu cầu : " + speech;

            using (TuVanLaptopEntities db = new TuVanLaptopEntities())
            {
                List <String> SuKien = (from m in db.SuKiens
                                        select m.Name.ToLower()).ToList();
                //mảng các sự kiện lấy đc
                List <String> Yeucau = new List <string>();
                //string[] word_key = speech.Split(' ');
                //foreach (var x in word_key)
                //{
                //    if (SuKien.Contains(x.ToUpper()))
                //    {
                //        Yeucau.Add(x);
                //    }
                //}
                foreach (var x in SuKien)
                {
                    if (speech.ToLower().Contains(x))
                    {
                        Yeucau.Add(x);
                    }
                }
                List <string> yeucau_int = new List <string>();
                //List<String> yc = Yeucau; //bắt được nam, lập trình viên
                foreach (var x in Yeucau)
                {
                    yeucau_int.Add(Models.SuKien.getSuKienId(FirstCharToUpper(x))); //lấy đc id sk
                }
                // List<String> yc = yeucau_int; //bắt đc sự kiện vế trái, 1 và 7
                string mangYeuCau_int = String.Join(",", yeucau_int.ToArray());

                Luat luat = Luat.getLuatByVeTrai(mangYeuCau_int);

                if (luat != null)
                {
                    var laptopList = Laptop.getLaptopByVePhai(Luat.getVePhaiByVeTrai(mangYeuCau_int));


                    // hiện section đánh giá độ tin cậy
                    TempData["CheckLuatTonTai"] = "Luật tồn tại";
                    //lấy id của luật đó:
                    int idold = luat.Id;
                    TempData["LuatId"] = idold;
                    //mô tả luật
                    TempData["MoTaLuat"] = Luat.GetMoTaLuat(idold);
                    //lấy độ tin cậy của luật đó
                    TempData["DoTinCay"] = Luat.GetDoTinCay(idold);

                    if (laptopList == null)
                    {
                        TempData["message"] = "Luật tồn tại!Chưa có sản phẩm gợi ý!";
                        return(RedirectToAction("NotFoundSanPham", "Home"));
                    }
                    else
                    {
                        TempData["message"] = "Có " + laptopList.Count() + " sản phẩm phù hợp!";
                        //return RedirectToAction("NotFoundSanPham", "Home",laptopList);
                        //return RedirectToAction("Index","TuVan",laptopList);
                        return(PartialView("SpeechResult", laptopList));
                    }
                }
                TempData["message"] = "Luật không tồn tại";
                return(PartialView("NotFound"));
            }
        }
예제 #29
0
        public ActionResult ThemLuatOrSuaLuat(int id, Luat luat, string[] thuoctinh, string[] toantu, string[] giatri, string stringUrl)
        {
            using (TuVanLaptopEntities db = new TuVanLaptopEntities())
            {
                //lấy sự kiện vế phải từ thuộc tính, toán tử và giá trị
                //check sửa luật
                string vephai = "";
                //nếu vế phải vẫn là rỗng=> thông báo và ko lưu
                if (thuoctinh == null && toantu == null && giatri == null)
                {
                    //trả về luật ban đầu
                    Luat luat1 = db.Luats.Where(x => x.Id == id).FirstOrDefault();;
                    luat.SuKienSelectedIDArray = luat1.SuKienVT.Split(',').ToArray();

                    luat.SuKienCollection = db.SuKiens.ToList();
                    ViewBag.VePhaiRong    = "Vui lòng chọn thêm sự kiện vế phải, không được để trống";
                    return(View(luat));
                }
                for (int i = 0; i < toantu.Length; i++)
                {
                    if (i != 0)
                    {
                        vephai += " AND ";
                    }
                    if (thuoctinh[i] == "mausac")
                    {
                        string giatrisau = "N" + "'%" + giatri[i].Trim() + "%'";
                        vephai += thuoctinh[i] + " " + toantu[i] + " " + giatrisau;
                    }
                    else
                    {
                        vephai += thuoctinh[i] + " " + toantu[i] + " " + giatri[i];
                    }
                }
                luat.SuKienVT = string.Join(",", luat.SuKienSelectedIDArray);
                luat.SukienVP = vephai;
                if (luat.GiaiThich == "tự cập nhật")
                {
                    luat.GiaiThich = vephai;
                }
                if (luat.DoTinCay == null)
                {
                    luat.DoTinCay = 100;
                }
                //khi chưa có Id, tức đang tạo luật mới
                if (luat.Id == 0)
                {
                    //thêm luật vào bảng luật
                    db.Luats.Add(luat);
                }

                //khi có Id tức sửa luật
                else
                {
                    db.Entry(luat).State = EntityState.Modified;
                }
                db.SaveChanges();

                return(RedirectToAction("QuanLiLuat", "Admin"));
            }
        }