Esempio n. 1
0
 public IActionResult Create(KetQuaThi kq)
 {
     try
     {
         if (is_admin)
         {
             //kq.ngay_thi = Convert.ToInt32(XMedia.XUtil.TimeInEpoch(cv_ngay_thi));
             SetMetaData(kq, false);
             var ket_qua_thi = KetQuaThiRepository.Instance.Index(kq);
             if (ket_qua_thi)
             {
                 SetAlert("Thêm kết quả thi thành công", "success");
             }
             else
             {
                 SetAlert("Thêm kết quả thi thất bại", "error");
             }
         }
         else
         {
             SetAlert("Thêm kết quả thi thất bại, bạn không có quyền", "error");
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
     return(View());
 }
        public void LuuKetQua()
        {
            string    SoCauDung = socaudung.ToString();
            string    MaHS      = UserName;
            string    SoCauSai  = (SoLuongCauHoi() - socaudung).ToString();
            double    DiemThi   = Diem;
            string    Ngaythi   = NgayThi;
            string    KiThi     = MaKiThi;
            KetQuaThi insert    = new KetQuaThi();

            insert.SoCauDung  = SoCauDung;
            insert.MaHS       = MaHS;
            insert.SoCauSai   = SoCauSai;
            insert.DiemThi    = DiemThi;
            insert.NgayThi    = NgayThi;
            insert.ID_Account = MaHS;
            insert.KyThi      = KiThi;
            insert.TenMH      = lblMonHoc.Text;
            db.KetQuaThis.InsertOnSubmit(insert);
            try
            {
                db.SubmitChanges();
            }
            catch (Exception)
            {
            }
        }
Esempio n. 3
0
        public KetQuaThiMap(KetQuaThi kq, TaiKhoan tk, CuocThi ct, List <ThuocTinh> tt)
        {
            id        = kq.id;
            nguoi_tao = kq.nguoi_tao;
            ngay_tao  = kq.ngay_tao;
            nguoi_sua = kq.nguoi_sua;
            ngay_sua  = kq.ngay_sua;
            ngay_thi  = kq.ngay_thi;
            if (tk != null)
            {
                id_tai_khoan = tk.id;
                username     = tk.username;
            }

            if (ct != null)
            {
                id_cuoc_thi  = ct.id;
                ten_cuoc_thi = ct.ten;
            }

            diem_thi         = kq.diem_thi;
            ket_qua_thi_json = kq.ket_qua_thi_json;
            var item_thuoc_tinh = new List <int>();

            if (kq.thuoc_tinh != null)
            {
                item_thuoc_tinh = kq.thuoc_tinh;
            }
            thuoc_tinh = tt.Where(x => item_thuoc_tinh.Contains(x.gia_tri)).ToDictionary(x => x.gia_tri, y => y.ten);
        }
Esempio n. 4
0
        public bool Update(KetQuaThi data)
        {
            string id = $"{data.id}";

            data.id       = string.Empty;
            data.ngay_sua = XMedia.XUtil.TimeInEpoch(DateTime.Now);

            return(Update(_default_index, data, id));
        }
Esempio n. 5
0
        //Lay bài thi cua 1 phong
        internal object ListALLexam(string id)
        {
            List <DanhGia> ketQuas = new List <DanhGia>();
            var            phong   = db.Phong_Thi.Where(x => x.MaPhong.Equals(id.Trim())).ToList().First();

            foreach (var item in phong.DS_SVThi)
            {
                var DeThi = db.De_Thi.Where(x => x.MaDeThi == item.MaDeThi).ToList().First();
                if (DeThi != null)
                {
                    if (DeThi.KetQuaThis.Count == 0)
                    {
                        TracNghiemOnlineDB tb1     = new TracNghiemOnlineDB();
                        DanhGia            danhGia = new DanhGia();
                        danhGia = Mark(DeThi);
                        ketQuas.Add(danhGia);
                        KetQuaThi ketQuaThi = new KetQuaThi();
                        ketQuaThi.Ma_DeThi  = DeThi.MaDeThi;
                        ketQuaThi.NgayThi   = DateTime.Now;
                        ketQuaThi.SoCauDung = danhGia.ketQuaThi.SoCauDung;
                        ketQuaThi.SoCauSai  = danhGia.ketQuaThi.SoCauSai;
                        ketQuaThi.DiemSo    = danhGia.ketQuaThi.DiemSo;
                        tb1.KetQuaThis.Add(ketQuaThi);
                        tb1.SaveChanges();
                        foreach (var item1 in danhGia.ketQuaThi.De_Thi.Danh_Gia)
                        {
                            Danh_Gia danh_Gia = new Danh_Gia();

                            danh_Gia.MaChuong  = item1.MaChuong;
                            danh_Gia.MaDeThi   = item1.MaDeThi;
                            danh_Gia.SoCauDung = item1.SoCauDung;
                            danh_Gia.TongCau   = item1.TongCau;
                            //  danh_Gia.NhanXet = item1.NhanXet;
                            danh_Gia.DanhGia = item1.DanhGia;
                            tb1.Danh_Gia.Add(danh_Gia);

                            tb1.SaveChanges();
                        }
                    }
                    else
                    {
                        DanhGia danhGia = new DanhGia();
                        danhGia.ketQuaThi        = DeThi.KetQuaThis.ToList().First();
                        danhGia.ketQuaThi.De_Thi = DeThi;
                        ketQuas.Add(danhGia);
                    }
                }
            }


            return(ketQuas);
        }
Esempio n. 6
0
        private KetQuaThi ConvertDoc(IHit <KetQuaThi> hit)
        {
            KetQuaThi u = new KetQuaThi();

            try
            {
                u    = hit.Source;
                u.id = hit.Id;
            }
            catch
            {
            }
            return(u);
        }
Esempio n. 7
0
        public bool Index(KetQuaThi data)
        {
            int  retry = 0; int max_retry = 5;
            bool need_retry = true;

            while (retry++ < max_retry && need_retry)
            {
                need_retry = !Index(_default_index, data, "");
                if (need_retry)
                {
                    Task.Delay(1000).Wait();
                }
            }
            return(!need_retry);
        }
Esempio n. 8
0
        public bool Index(KetQuaThi ket_qua, out string id)
        {
            id = "";

            var req = new IndexRequest <KetQuaThi> {
                Document = ket_qua
            };
            var re = client.Index(req);

            if (re.Result == Result.Created)
            {
                id = re.Id;
                return(true);
            }

            return(false);
        }
Esempio n. 9
0
        public IActionResult InsertKetQuaThi(string cuoc_thi, string tai_khoan, string json_ket_qua_thi, double diem_thi)
        {
            KetQuaThi kq = new KetQuaThi
            {
                id_tai_khoan     = tai_khoan,
                id_cuoc_thi      = cuoc_thi,
                diem_thi         = diem_thi,
                ket_qua_thi_json = json_ket_qua_thi,
                ngay_tao         = XMedia.XUtil.TimeInEpoch(DateTime.Now),
                ngay_sua         = XMedia.XUtil.TimeInEpoch(DateTime.Now),
                nguoi_tao        = tai_khoan,
                nguoi_sua        = tai_khoan
            };

            if (KetQuaThiRepository.Instance.Index(kq, out string id))
            {
                var get_kieu_ket_qua = CuocThiRepository.Instance.GetById(kq.id_cuoc_thi)?.kieu_ket_qua;
                if (get_kieu_ket_qua != null)
                {
                    var noi_dung_kieu_du_lieu = get_kieu_ket_qua
                                                .FirstOrDefault(x => x.min <kq.diem_thi && x.max> kq.diem_thi)?.ten;
                    if (string.IsNullOrEmpty(noi_dung_kieu_du_lieu))
                    {
                        noi_dung_kieu_du_lieu = string.Empty;
                    }
                    TaiKhoanChungChi tkcc = new TaiKhoanChungChi
                    {
                        id_ket_qua_thi = id,
                        id_tai_khoan   = tai_khoan,
                        ngay_cap       = kq.ngay_thi,
                        id             = id,
                        noi_dung       = noi_dung_kieu_du_lieu + $"(Điểm đạt được: {kq.diem_thi})",
                        ngay_tao       = kq.ngay_tao,
                        ngay_sua       = XMedia.XUtil.TimeInEpoch(DateTime.Now),
                        nguoi_tao      = tai_khoan,
                        nguoi_sua      = tai_khoan
                    };

                    TaiKhoanChungChiRepository.Instance.Index(tkcc);
                }
                return(Json(new { msg = "Tạo kết quả thành công" }));
            }

            return(Json(new { msg = "Tạo kết quả thất bại" }));
        }
Esempio n. 10
0
        public IActionResult Edit(KetQuaThi kq)
        {
            try
            {
                if (is_admin)
                {
                    //kq.ngay_thi = Convert.ToInt32(XMedia.XUtil.TimeInEpoch(Convert.ToDateTime(ngay_thi)));
                    SetMetaData(kq, true);
                    var ket_qua_thi = KetQuaThiRepository.Instance.Update(kq);
                    if (ket_qua_thi)
                    {
                        SetAlert("Sửa kết quả thi thành công", "success");
                    }
                    else
                    {
                        SetAlert("Sửa kết quả thi thất bại", "error");
                    }

                    if (ModelState.IsValid)
                    {
                        var lst_thuoc_tinh = ThuocTinhRepository.Instance.GetThuocTinhByLoai(LoaiThuocTinh.KET_QUA_THI, user(), is_admin);
                        ViewBag.thuoc_tinh = BuildThuocTinh(lst_thuoc_tinh);
                        var all_cuoc_thi = CuocThiRepository.Instance.GetAll(new List <string>(), new string[] { "id", "ten" });
                        ViewBag.CuocThi = all_cuoc_thi.Select(o => new SelectListItem {
                            Value = o.id, Text = o.ten
                        }).ToList();
                        var all_tai_khoan = TaiKhoanRepository.Instance.GetAll(new List <string>(), new[] { "id", "username" });
                        ViewBag.TaiKhoan = all_tai_khoan.Select(o => new SelectListItem {
                            Value = o.username, Text = o.username
                        }).ToList();
                    }
                }
                else
                {
                    SetAlert("Sửa kết quả thi thất bại, bạn không có quyền", "error");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            return(View());
        }
        public ActionResult DSDETHI()
        {
            List <DanhGia>     ketQuas = new List <DanhGia>();
            TracNghiemOnlineDB db      = new TracNghiemOnlineDB();
            var session = (TaiKhoan)Session[ComMon.ComMonStants.UserLogin];

            var dssv = db.DS_SVThi.Where(x => x.Ma_SV.Equals(session.TaiKhoan1));

            List <Phong_Thi> phong_This = new List <Phong_Thi>();

            foreach (var item in dssv)
            {
                try
                {
                    var phong = new TracNghiemOnlineDB().Phong_Thi.Where(x => x.MaPhong.Equals(item.MaPhong) && x.TrangThai.Equals("Đã Đóng"));
                    if (phong != null)
                    {
                        var DeThi = db.De_Thi.Where(x => x.MaDeThi == item.MaDeThi).ToList().First();
                        if (DeThi != null)
                        {
                            if (DeThi.KetQuaThis.Count == 0)
                            {
                                TracNghiemOnlineDB tb1     = new TracNghiemOnlineDB();
                                DanhGia            danhGia = new DanhGia();
                                danhGia = new QuanLyThiDAO().Mark(DeThi);

                                KetQuaThi ketQuaThi = new KetQuaThi();
                                ketQuaThi.Ma_DeThi = DeThi.MaDeThi;

                                ketQuaThi.NgayThi   = phong.ToList()[0].ThoiGianDong;
                                ketQuaThi.SoCauDung = danhGia.ketQuaThi.SoCauDung;
                                ketQuaThi.SoCauSai  = danhGia.ketQuaThi.SoCauSai;
                                ketQuaThi.DiemSo    = danhGia.ketQuaThi.DiemSo;
                                tb1.KetQuaThis.Add(ketQuaThi);
                                tb1.SaveChanges();

                                foreach (var item1 in danhGia.ketQuaThi.De_Thi.Danh_Gia)
                                {
                                    Danh_Gia danh_Gia = new Danh_Gia();

                                    danh_Gia.MaChuong  = item1.MaChuong;
                                    danh_Gia.MaDeThi   = item1.MaDeThi;
                                    danh_Gia.SoCauDung = item1.SoCauDung;
                                    danh_Gia.TongCau   = item1.TongCau;
                                    //  danh_Gia.NhanXet = item1.NhanXet;
                                    danh_Gia.DanhGia = item1.DanhGia;
                                    tb1.Danh_Gia.Add(danh_Gia);

                                    tb1.SaveChanges();
                                }

                                ketQuas.Add(danhGia);
                            }
                            else
                            {
                                DanhGia danhGia = new DanhGia();
                                danhGia.ketQuaThi         = DeThi.KetQuaThis.ToList().First();
                                danhGia.ketQuaThi.NgayThi = phong.ToList()[0].ThoiGianDong;
                                danhGia.ketQuaThi.De_Thi  = DeThi;
                                ketQuas.Add(danhGia);
                            }
                            phong_This.Add(phong.ToList()[0]);
                        }
                    }
                }
                catch { }
            }



            ViewBag.phong = phong_This;

            return(View(ketQuas));
        }
Esempio n. 12
0
        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);
        }