internal void OptionStudent(De_Thi examQuestion) { var ListOptionStudent = db.Da_SVLuaChon.Where(x => x.MaDeThi == examQuestion.MaDeThi).ToList(); if (ListOptionStudent.Count > 0) { foreach (var item in ListOptionStudent) { db.Da_SVLuaChon.Remove(item); db.SaveChanges(); } } foreach (var item in examQuestion.CauHoiDeThis) { foreach (var item1 in item.Kho_CauHoi.Dap_AN) { if (item1.TrangThai == true) { Da_SVLuaChon da_SVLuaChon = new Da_SVLuaChon(); da_SVLuaChon.Ma_DAN = item1.MA_DAN; da_SVLuaChon.MaDeThi = examQuestion.MaDeThi; db.Da_SVLuaChon.Add(da_SVLuaChon); db.SaveChanges(); } } } }
public JsonResult KetQuaHocTap() { try { var session = (TaiKhoan)Session[ComMonStants.UserLogin]; De_Thi thi = (De_Thi)Session["dethi"]; var arr = from c in thi.CauHoiDeThis.ToList() select new { Ma_CH = c.Kho_CauHoi.Ma_CauHoi, NoiDung = c.Kho_CauHoi.NoiDung, HinhAnh = c.Kho_CauHoi.HinhAnh, Dapan = from d in new TracNghiemOnlineDB().Dap_AN.Where(x => x.Ma_CauHoi == c.MaCauHoi).ToList() select new { Ma_Dan = d.MA_DAN, NoiDung = d.NoiDung, d.HinhAnh, d.TrangThai, } }; Session["dethi"] = ""; return(Json(new { arr, result = false }, JsonRequestBehavior.AllowGet)); } catch { } return(Json(new { result = false }, JsonRequestBehavior.AllowGet)); }
public ActionResult Loald(string id) { string tgbd = (string)Session["TGTHI"]; var ngay = tgbd.Split('/'); var session = (TaiKhoan)Session[ComMon.ComMonStants.UserLogin]; var list = new BoDeDao().ChapterStudy(long.Parse(id)); var Exem = new De_Thi(); try { Exem = (De_Thi)Session[ComMon.ComMonStants.ExamQuesTion]; if (Exem == null) { Exem = new BoDeDao().MixExemQuestion(list, session.TaiKhoan1); } } catch { Exem = new BoDeDao().MixExemQuestion(list, session.TaiKhoan1); } Session[ComMon.ComMonStants.ExamQuesTion] = Exem; DateTime data = new DateTime(int.Parse(ngay[0]), int.Parse(ngay[1]), int.Parse(ngay[2]), int.Parse(ngay[3]), int.Parse(ngay[4]), int.Parse(ngay[5])).AddMinutes(double.Parse(list.ThoiGianThi)); ViewBag.GioThi = data.ToString("yyyy/MM/dd HH:mm:ss"); ViewBag.DeThi = (De_Thi)Exem; return(View()); }
internal void CreateTopic(De_Thi bo_De1, long mabai, TaiKhoan tk, LopHocPhan lopHocPhan) { bo_De1.CauHoiDeThis = new List <CauHoiDeThi>(); TracNghiemOnlineDB db = new TracNghiemOnlineDB(); var danhgia = db.DS_BaiHoc.SingleOrDefault(x => x.Ma_Bai == mabai && x.MaSV.Equals(tk.TaiKhoan1)); string[] ListCH = danhgia.ListCauHoi.Split('/'); if ((ListCH.Length) == 40) { danhgia.SoCauDung = 0; danhgia.SoCauSai = 0; danhgia.ListCauHoi = ""; ListCH = danhgia.ListCauHoi.Split('/'); db.SaveChanges(); } else if (danhgia.SoCauSai - danhgia.SoCauDung > 30 && danhgia.SoCauSai + danhgia.SoCauDung > 55) { danhgia.SoCauDung = 0; danhgia.SoCauSai = 0; danhgia.ListCauHoi = ""; ListCH = danhgia.ListCauHoi.Split('/'); db.SaveChanges(); } Random(bo_De1, mabai, 2, "Nhận Biết", ListCH, lopHocPhan); Random(bo_De1, mabai, 2, "Thông Hiểu", ListCH, lopHocPhan); Random(bo_De1, mabai, 1, "Vận Dụng", ListCH, lopHocPhan); Random(bo_De1, mabai, 1, "Vận Dụng Cao", ListCH, lopHocPhan); }
private void LuuDe(De_Thi deThi, NoiDungThi noiDungThi, int max, int min, LopHocPhan lopHocPhan) { for (int i = min; i < max; i++) { for (int j = 0; j < 4; j++) { if (j == 0) { Random(deThi, (long)noiDungThi.noidung.Ma_Chuong, noiDungThi.BanMucDo()[i, j], "Nhận Biết", null, lopHocPhan); } if (j == 1) { Random(deThi, (long)noiDungThi.noidung.Ma_Chuong, noiDungThi.BanMucDo()[i, j], "Thông Hiểu", null, lopHocPhan); } if (j == 2) { Random(deThi, (long)noiDungThi.noidung.Ma_Chuong, noiDungThi.BanMucDo()[i, j], "Vận Dụng", null, lopHocPhan); } if (j == 3) { Random(deThi, (long)noiDungThi.noidung.Ma_Chuong, noiDungThi.BanMucDo()[i, j], "Vận Dụng Cao", null, lopHocPhan); } } } }
public De_Thi SearDethi(long?maDeThi) { De_Thi de_Thi = new De_Thi(); de_Thi = db.De_Thi.Find(maDeThi); if (de_Thi != null) { de_Thi.CauHoiDeThis = db.CauHoiDeThis.Where(x => x.MaDeThi == de_Thi.MaDeThi).ToList(); de_Thi.Da_SVLuaChon = db.Da_SVLuaChon.Where(x => x.MaDeThi == de_Thi.MaDeThi).ToList(); foreach (var item1 in de_Thi.CauHoiDeThis) { foreach (var item2 in item1.Kho_CauHoi.Dap_AN) { if (de_Thi.Da_SVLuaChon.ToList().Exists(x => x.Ma_DAN == item2.MA_DAN)) { item2.TrangThai = true; } else { item2.TrangThai = false; } } } } return(de_Thi); }
internal void UpdateDsThi(Phong_Thi phong, De_Thi deThi, string Masv, string trangthai) { var dSSV = db.DS_SVThi.SingleOrDefault(x => x.MaPhong == phong.MaPhong && x.Ma_SV.Equals(Masv)); dSSV.MaDeThi = deThi.MaDeThi; dSSV.TrangThai = trangthai; db.SaveChanges(); }
public ActionResult EditDethi(De_Thi de_Thi) { TracNghiemOnlineDB db = new TracNghiemOnlineDB(); var de = db.De_Thi.Find(de_Thi.MaDeThi); de.DiemTru = de_Thi.DiemTru.Value; // de.ThoiGianThi = de.ThoiGianThi; de.CanhCao = de_Thi.CanhCao; de.ChiTiet = de_Thi.ChiTiet; db.SaveChanges(); var classRoom = (Phong_Thi)Session[ComMon.ComMonStants.ExamRoom]; return(RedirectToAction("ToChucThi/" + classRoom.MaPhong)); }
public De_Thi MixExemQuestion(Bo_De bo_De, string SV) { Random random = new Random(); De_Thi de_Thi = new De_Thi(); de_Thi.Ma_BoDe = bo_De.Ma_BoDe; de_Thi.Ma_SV = SV; de_Thi.TrangThai = true; var lisQuestion = (List <CauHoi>)bo_De.CauHois; int Lenght = lisQuestion.Count; for (int i = 0; i < Lenght; i++) { int vt = random.Next(lisQuestion.Count); CauHoiDeThi cauHoi = new CauHoiDeThi(); cauHoi.MaCauHoi = lisQuestion[vt].Ma_CauHoi; de_Thi.CauHoiDeThis.Add(cauHoi); lisQuestion.RemoveAt(vt); } de_Thi.ThoiGianThi = bo_De.ThoiGianThi; de_Thi.TrangThai = true; de_Thi.DiemTru = 0; db.De_Thi.Add(de_Thi); db.SaveChanges(); de_Thi.MaDeThi = db.De_Thi.Select(x => x).ToList().Last().MaDeThi; de_Thi.CauHoiDeThis = db.CauHoiDeThis.Where(x => x.MaDeThi == de_Thi.MaDeThi).ToList(); foreach (var item in de_Thi.CauHoiDeThis) { item.Kho_CauHoi = new CauHoiDao().Question(long.Parse(item.MaCauHoi.ToString())); foreach (var item1 in item.Kho_CauHoi.Dap_AN) { item1.TrangThai = false; } } de_Thi.SinhVien = db.SinhViens.SingleOrDefault(x => x.MaSV.Equals(SV)); de_Thi.SinhVien.Lop = new TracNghiemOnlineDB().Lops.Find(de_Thi.SinhVien.Ma_Lop); de_Thi.SinhVien.Lop.Nganh = new TracNghiemOnlineDB().Nganhs.Find(de_Thi.SinhVien.Lop.Ma_Nganh); de_Thi.Bo_De = bo_De; return(de_Thi); }
private void Random(De_Thi De1, long mabai, int sl, string v, string[] ListCH, LopHocPhan lopHocPhan) { List <Kho_CauHoi> kho_CauHois = Nuberofquestion(mabai, v, lopHocPhan); Random random = new Random(); if (kho_CauHois.Count > 0) { for (int i = 0; i < sl; i++) { while (true) { int dem = 0; int vt = random.Next(kho_CauHois.Count); try { } catch { for (int j = 0; j < ListCH.Length - 1; j++) { if (kho_CauHois[vt].Ma_CauHoi == long.Parse(ListCH[j])) { dem++; break; } } } if (dem == 0) { CauHoiDeThi cauHoi = new CauHoiDeThi(); cauHoi.MaDeThi = De1.MaDeThi; cauHoi.MaCauHoi = kho_CauHois[vt].Ma_CauHoi; cauHoi.Kho_CauHoi = kho_CauHois[vt]; De1.CauHoiDeThis.Add(cauHoi); kho_CauHois.RemoveAt(vt); break; } kho_CauHois.RemoveAt(vt); } } } }
internal void TaoDe(DanhGia da, int sl, int mucdo, LopHocPhan lopHocPhan) { De_Thi deThi = new De_Thi(); foreach (var item in da.DanhGiaMucDo1) { item.SoCau = sl / da.DanhGiaMucDo1.Count; } for (int i = 0; i < sl % da.DanhGiaMucDo1.Count; i++) { da.DanhGiaMucDo1[i].SoCau++; } foreach (var item in da.DanhGiaMucDo1) { if (mucdo == 1) { LuuDe(deThi, item, 1, 0, lopHocPhan); } if (mucdo == 2) { LuuDe(deThi, item, 2, 1, lopHocPhan); } if (mucdo == 3) { LuuDe(deThi, item, 3, 2, lopHocPhan); } if (mucdo == 4) { LuuDe(deThi, item, 3, 4, lopHocPhan); } } foreach (var item1 in da.DanhGiaMucDo1) { item1.noidung.Kho_CauHoi = new List <Kho_CauHoi>(); foreach (var item in deThi.CauHoiDeThis) { if (item.Kho_CauHoi.Ma_Chuong == item1.noidung.Ma_Chuong) { item1.noidung.Kho_CauHoi.Add(item.Kho_CauHoi); } } } da.ketQuaThi1 = deThi; }
public JsonResult CauHoi(long id) { try { LopHocPhan lopHocPhan = (LopHocPhan)Session["LopHP"]; var session = (TaiKhoan)Session[ComMonStants.UserLogin]; // TaiKhoan tk = (TaiKhoan)Session["user"]; De_Thi thi = new De_Thi(); var danhgia = new TracNghiemOnlineDB().DS_BaiHoc.SingleOrDefault(x => x.Ma_Bai == id && x.MaSV.Equals(session.TaiKhoan1)); string[] ListCH = danhgia.ListCauHoi.Split('/'); if (new TracNghiemOnlineDB().Kho_CauHoi.Where(x => x.Ma_Chuong == id && (x.NguoiTao.Equals(lopHocPhan.MaGV) && x.TrangThai == false) && x.Xoa == true).ToList().Count - ListCH.Length < 6) { return(Json(new { code = 200 }, JsonRequestBehavior.AllowGet)); } ; new TaoDeDao().CreateTopic(thi, id, session, lopHocPhan); var arr = from c in thi.CauHoiDeThis.ToList() select new { Ma_CH = c.Kho_CauHoi.Ma_CauHoi, NoiDung = c.Kho_CauHoi.NoiDung, HinhAnh = c.Kho_CauHoi.HinhAnh, Dapan = from d in new TracNghiemOnlineDB().Dap_AN.Where(x => x.Ma_CauHoi == c.MaCauHoi).ToList() select new { Ma_Dan = d.MA_DAN, NoiDung = d.NoiDung, TrangThai = false, d.HinhAnh, } }; Session["dethi"] = thi; return(Json(new { arr, code = 100 }, JsonRequestBehavior.AllowGet)); } catch { } return(Json(new { code = 200 }, JsonRequestBehavior.AllowGet)); }
public void Mark(DanhGia exam, int a) { TracNghiemOnlineDB db = new TracNghiemOnlineDB(); // exam.Da_SVLuaChon = db.Da_SVLuaChon.Where(x => x.MaDeThi == exam.MaDeThi).ToList(); int socauDung = 0; var kho_CauHoi2 = new List <Kho_CauHoi>(); var kho_CauHoi1 = new List <Kho_CauHoi>(); var noiDungThis = new List <NoiDungThi>(); foreach (var item in exam.ketQuaThi1.CauHoiDeThis) { var khocauhoi = db.Kho_CauHoi.Find(item.Kho_CauHoi.Ma_CauHoi); item.Kho_CauHoi = khocauhoi; kho_CauHoi2.Add(khocauhoi); foreach (var item1 in khocauhoi.Dap_AN) { if (exam.ketQuaThi1.Da_SVLuaChon.ToList().Exists(x => x.Ma_DAN == item1.MA_DAN && item1.TrangThai == true)) { socauDung++; kho_CauHoi1.Add(khocauhoi); } } } // Lay Ra So Cau sv da lam dung cua moi chuong foreach (var item0 in exam.DanhGiaMucDo1) { noiDungThis.Add(item0); item0.noidung.Kho_CauHoi = kho_CauHoi1.Where(x => x.Ma_Chuong == item0.noidung.Ma_Chuong).ToList(); } DanhGia danhGia = new DanhGia(); //danhGia.DanhGiaMucDo = new List<SoLuongChuong>(); //danhGia.ketQuaThi = new KetQuaThi(); exam.ketQuaThi1.Danh_Gia = new List <Modell.Danh_Gia>(); for (int i = 0; i < exam.DanhGiaMucDo1.Count; i++) { db = new TracNghiemOnlineDB(); double a1 = (double)(kho_CauHoi1.Where(X => X.MucDo.Equals("Nhận Biết") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)1; double a2 = (double)(kho_CauHoi1.Where(X => X.MucDo.Equals("Thông Hiểu") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)2; double a3 = (double)(kho_CauHoi1.Where(X => X.MucDo.Equals("Vận Dụng") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)3; double a4 = (double)(kho_CauHoi1.Where(X => X.MucDo.Equals("Vận Dụng Cao") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)4; exam.DanhGiaMucDo1[i].nhanbiet = (kho_CauHoi1.Where(X => X.MucDo.Equals("Nhận Biết") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) + "/" + (kho_CauHoi2.Where(X => X.MucDo.Equals("Nhận Biết") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count); exam.DanhGiaMucDo1[i].Thonghieu = (kho_CauHoi1.Where(X => X.MucDo.Equals("Thông Hiểu") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) + "/" + (kho_CauHoi2.Where(X => X.MucDo.Equals("Thông Hiểu") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count); exam.DanhGiaMucDo1[i].vandung = (kho_CauHoi1.Where(X => X.MucDo.Equals("Vận Dụng") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) + "/" + (kho_CauHoi2.Where(X => X.MucDo.Equals("Vận Dụng") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count); exam.DanhGiaMucDo1[i].vandungcao = (kho_CauHoi1.Where(X => X.MucDo.Equals("Vận Dụng Cao") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) + "/" + (kho_CauHoi2.Where(X => X.MucDo.Equals("Vận Dụng Cao") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count); double b1 = (double)(kho_CauHoi2.Where(X => X.MucDo.Equals("Nhận Biết") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)1; double b2 = (double)(kho_CauHoi2.Where(X => X.MucDo.Equals("Thông Hiểu") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)2; double b3 = (double)(kho_CauHoi2.Where(X => X.MucDo.Equals("Vận Dụng") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)3; double b4 = (double)(kho_CauHoi2.Where(X => X.MucDo.Equals("Vận Dụng Cao") && X.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)4; double DG = 0; double A = a1 + a2 + a3 + a4; double b = b1 + b2 + b3 + b4; DG = (double)(A / b) * 10; double tile = 0; tile = (double)((double)(kho_CauHoi1.Where(x => x.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) / (double)(kho_CauHoi2.Where(x => x.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) * (double)100); Danh_Gia danhGia1 = new Danh_Gia(); danhGia1.Diem = DG; danhGia1.MaChuong = exam.DanhGiaMucDo1[i].noidung.Ma_Chuong; exam.ketQuaThi1.Danh_Gia.Add(danhGia1); tile = Math.Round(tile, 3); exam.DanhGiaMucDo1[i].danh_Gia = new DanhGia1(); exam.DanhGiaMucDo1[i].danh_Gia.NhanXet = new string[100]; exam.DanhGiaMucDo1[i].danh_Gia.SoCauDung = (kho_CauHoi1.Where(x => x.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count); exam.DanhGiaMucDo1[i].danh_Gia.TongCau = kho_CauHoi2.Where(x => x.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count; exam.DanhGiaMucDo1[i].danh_Gia.NhanXet[0] = "Bạn làm đúng (" + (kho_CauHoi1.Where(x => x.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count) + "/" + kho_CauHoi2.Where(x => x.Ma_Chuong == exam.DanhGiaMucDo1[i].noidung.Ma_Chuong).ToList().Count + " đạt tỉ lệ " + tile + " %) \n"; if (DG < 5) { exam.DanhGiaMucDo1[i].danh_Gia.DanhGia = 1; exam.DanhGiaMucDo1[i].danh_Gia.NhanXet[1] = "-Kiến thức phần này của bạn còn rất hạn chế điểm phần này bài test còn chưa cao.Bạn cần cố gắng cải thiện hơn nữa"; } else if (DG >= 5 && DG < 7) { exam.DanhGiaMucDo1[i].danh_Gia.DanhGia = 2; exam.DanhGiaMucDo1[i].danh_Gia.NhanXet[1] = "Kiến thức của bạn ở phần này chỉ ở mức trung bình. Bạn cần cố gắng hơn để cải thiện thành tích của mình"; } else if (DG >= 7 && DG < 8.5) { exam.DanhGiaMucDo1[i].danh_Gia.DanhGia = 3; exam.DanhGiaMucDo1[i].danh_Gia.NhanXet[1] = "Kiến thức của bạn ở phần này khá tốt. Bạn cố gắng thêm để đặt được số điểm cao hơn nữa"; } else if (DG >= 8.5) { exam.DanhGiaMucDo1[i].danh_Gia.DanhGia = 4; exam.DanhGiaMucDo1[i].danh_Gia.NhanXet[1] = "Kiến thức của bạn ở phần bạn rất làm rất tốt. Bạn cố gắng duy trì phong độ nhé"; } } db = new TracNghiemOnlineDB(); double Hediem = (double)((double)10 / (double)(exam.ketQuaThi1.CauHoiDeThis.Count)); exam.ketQuaThi1.DiêmSo = Math.Round((double)((double)(socauDung) * (double)(Hediem)), 3); if (a == 1) { De_Thi deThi = new De_Thi(); deThi.Ma_SV = exam.ketQuaThi1.Ma_SV; deThi.NgayThi = exam.ketQuaThi1.NgayThi; deThi.DiêmSo = Math.Round((double)((double)(socauDung) * (double)(Hediem)), 3); deThi.ThoiGianThi = exam.ketQuaThi1.ThoiGianThi; deThi.MaMon = exam.ketQuaThi1.MaMon; db.De_Thi.Add(deThi); db.SaveChanges(); deThi.MaDeThi = db.De_Thi.Where(x => x.Ma_SV.Equals(deThi.Ma_SV)).ToList().Last().MaDeThi; int i = 0; foreach (var item in exam.ketQuaThi1.Danh_Gia) { Danh_Gia danhGia1 = new Danh_Gia(); danhGia1.Diem = item.Diem; danhGia1.MaDeThi = deThi.MaDeThi; danhGia1.MaChuong = item.MaChuong; danhGia1.TongCau = exam.DanhGiaMucDo1[i].danh_Gia.SoCauDung; danhGia1.SoCauDung = exam.DanhGiaMucDo1[i].danh_Gia.TongCau; db.Danh_Gia.Add(danhGia1); i++; db.SaveChanges(); } foreach (var item in exam.ketQuaThi1.CauHoiDeThis) { CauHoiDeThi cau_Hoi = new CauHoiDeThi(); cau_Hoi.MaDeThi = deThi.MaDeThi; cau_Hoi.MaCauHoi = item.MaCauHoi; db.CauHoiDeThis.Add(cau_Hoi); db.SaveChanges(); } foreach (var item in exam.ketQuaThi1.Da_SVLuaChon) { Da_SVLuaChon da_Lua = new Da_SVLuaChon(); da_Lua.MaDeThi = deThi.MaDeThi; da_Lua.Ma_DAN = item.Ma_DAN; db.Da_SVLuaChon.Add(da_Lua); db.SaveChanges(); } } }
public DanhGia Mark(De_Thi exam) { exam.Da_SVLuaChon = db.Da_SVLuaChon.Where(x => x.MaDeThi == exam.MaDeThi).ToList(); int socauDung = 0; var Bode = db.Bo_De.Where(x => x.Ma_BoDe == exam.Ma_BoDe).ToList().First(); List <Kho_CauHoi> kho_CauHois = new List <Kho_CauHoi>(); List <Chuong_Hoc> chuonghoc1 = new List <Chuong_Hoc>(); List <Chuong_Hoc> chuong2 = new List <Chuong_Hoc>(); foreach (var item in exam.CauHoiDeThis) { kho_CauHois.Add(item.Kho_CauHoi); } //Lay Ra So Cau HOI cua moi chuong foreach (var item in db.Chuong_Hoc.Where(x => x.Ma_Mon == Bode.Ma_Mon).ToList()) { Chuong_Hoc chuong = new Chuong_Hoc(); chuong.Ma_Chuong = item.Ma_Chuong; chuong.TenChuong = item.TenChuong; chuong.Kho_CauHoi = new List <Kho_CauHoi>(); chuonghoc1.Add(chuong); } foreach (var item in db.Chuong_Hoc.Where(x => x.Ma_Mon == Bode.Ma_Mon).ToList()) { Chuong_Hoc chuong = new Chuong_Hoc(); chuong.Ma_Chuong = item.Ma_Chuong; chuong.Kho_CauHoi = new List <Kho_CauHoi>(); chuong2.Add(chuong); } foreach (var item in chuonghoc1) { foreach (var item1 in kho_CauHois.Where(x => x.Ma_Chuong == item.Ma_Chuong).ToList()) { item.Kho_CauHoi.Add(item1); } } //Lay Ra So Cau sv da lam dung cua moi chuong var kho_CauHoi1 = new List <Kho_CauHoi>(); foreach (var item in exam.CauHoiDeThis) { item.Kho_CauHoi = new CauHoiDao().Question(item.Kho_CauHoi.Ma_CauHoi); foreach (var item1 in item.Kho_CauHoi.Dap_AN) { if (exam.Da_SVLuaChon.ToList().Exists(x => x.Ma_DAN == item1.MA_DAN && item1.TrangThai == true)) { socauDung++; kho_CauHoi1.Add(item.Kho_CauHoi); } } } // Lay Ra So Cau sv da lam dung cua moi chuong foreach (var item0 in chuong2) { item0.Kho_CauHoi = kho_CauHoi1.Where(x => x.Ma_Chuong == item0.Ma_Chuong).ToList(); } DanhGia danhGia = new DanhGia(); danhGia.DanhGiaMucDo = new List <SoLuongChuong>(); danhGia.ketQuaThi = new KetQuaThi(); for (int i = 0; i < chuonghoc1.Count; i++) { if (chuonghoc1[i].Kho_CauHoi.Count > 0) { db = new TracNghiemOnlineDB(); Danh_Gia danh_Gia = new Danh_Gia(); SoLuongChuong soLuongChuong = new SoLuongChuong(); danh_Gia.MaChuong = chuonghoc1[i].Ma_Chuong; danh_Gia.MaDeThi = exam.MaDeThi; danh_Gia.SoCauDung = chuong2[i].Kho_CauHoi.Count; danh_Gia.TongCau = chuonghoc1[i].Kho_CauHoi.Count; soLuongChuong.TongSoCau = "" + danh_Gia.SoCauDung + "/" + danh_Gia.TongCau; double a1 = (double)(chuong2[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Nhận Biết")).ToList().Count * 1); double a2 = (double)(chuong2[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Thông Hiểu")).ToList().Count * 2); double a3 = (double)(chuong2[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Vận Dụng")).ToList().Count * 3); double a4 = (double)(chuong2[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Vận Dụng Cao")).ToList().Count * 4); soLuongChuong.Chuong = chuonghoc1[i]; soLuongChuong.nhanBiet = chuong2[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Nhận Biết")).ToList().Count + "/" + chuonghoc1[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Nhận Biết")).ToList().Count; soLuongChuong.thongHieu = chuong2[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Thông Hiểu")).ToList().Count + "/" + chuonghoc1[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Thông Hiểu")).ToList().Count; soLuongChuong.vandung = chuong2[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Vận Dụng")).ToList().Count + "/" + chuonghoc1[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Vận Dụng")).ToList().Count; soLuongChuong.vandungcao = chuong2[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Vận Dụng Cao")).ToList().Count + "/" + chuonghoc1[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Vận Dụng Cao")).ToList().Count; danhGia.DanhGiaMucDo.Add(soLuongChuong); double b1 = (double)(chuonghoc1[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Nhận Biết")).ToList().Count * 1); double b2 = (double)(chuonghoc1[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Thông Hiểu")).ToList().Count * 2); double b3 = (double)(chuonghoc1[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Vận Dụng")).ToList().Count * 3); double b4 = (double)(chuonghoc1[i].Kho_CauHoi.Where(X => X.MucDo.Equals("Vận Dụng Cao")).ToList().Count * 4); double DG = 0; double A = a1 + a2 + a3 + a4; double b = b1 + b2 + b3 + b4; DG = (double)(A / b) * 10; double tile = ((double)danh_Gia.SoCauDung / (double)danh_Gia.TongCau) * 100; tile = Math.Round((double)tile, 2); danh_Gia.NhanXet = "Bạn làm đúng (" + soLuongChuong.TongSoCau + " đạt tỉ lệ " + tile + " %) \n "; if (DG < 5) { danh_Gia.DanhGia = "Yếu"; danh_Gia.NhanXet += "-Kiến thức phần này của bạn còn rất hạn chế điểm phần này bài test còn chưa cao.Bạn cần cố gắng cải thiện hơn nữa"; } if (DG >= 5 && DG < 7) { danh_Gia.DanhGia = "Trung Bình"; danh_Gia.NhanXet += "Kiến thức của bạn ở phần này chỉ ở mức trung bình. Bạn cần cố gắng hơn để cải thiện thành tích của mình"; } if (DG >= 7 && DG < 8.5) { danh_Gia.DanhGia = "Khá"; danh_Gia.NhanXet += "Kiến thức của bạn ở phần này khá tốt. Bạn cố gắng thêm để đặt được số điểm cao hơn nữa"; } if (DG >= 8.5) { danh_Gia.DanhGia = "Giỏi"; danh_Gia.NhanXet += "Kiến thức của bạn ở phần bạn rất làm rất tốt. Bạn cố gắng duy trì phong độ nhé"; } danh_Gia.Chuong_Hoc = db.Chuong_Hoc.Find(danh_Gia.MaChuong); exam.Danh_Gia.Add(danh_Gia); } } double Hediem = (double)((double)10 / (double)(exam.CauHoiDeThis.Count)); KetQuaThi ketQuaThi = new KetQuaThi(); ketQuaThi.Ma_DeThi = exam.MaDeThi; ketQuaThi.NgayThi = DateTime.Now; ketQuaThi.SoCauDung = socauDung; ketQuaThi.SoCauSai = exam.CauHoiDeThis.Count - socauDung; ketQuaThi.DiemSo = (double)(socauDung) * (double)(Hediem); exam.Bo_De = Bode; // exam.Bo_De. ketQuaThi.De_Thi = exam; ketQuaThi.De_Thi.SinhVien = db.SinhViens.Find(exam.Ma_SV); danhGia.ketQuaThi = ketQuaThi; try { if (ketQuaThi.DiemSo >= 1 && exam.DiemTru != 0) { var pt = (ketQuaThi.DiemSo * exam.DiemTru) / (double)100; ketQuaThi.DiemSo = ketQuaThi.DiemSo - pt; } } catch { } ketQuaThi.DiemSo = Math.Round((double)ketQuaThi.DiemSo, 2); return(danhGia); }