private void btnThiThu_Click(object sender, EventArgs e) { if (dgvTTKyThiThu.SelectedRows.Count > 0) { int madt = int.Parse(dgvTTKyThiThu.SelectedRows[0].Cells["maDT"].Value.ToString()); int makt = int.Parse(dgvTTKyThiThu.SelectedRows[0].Cells["maKT"].Value.ToString()); btGanNhat = qlttn.BuoiThis.Where(bt => bt.maKT == makt && bt.maDT == madt).FirstOrDefault(); btGanNhat.NgayGioThi = DateTime.Now; ktGanNhat = btGanNhat.KyThi; tabControl1.SelectedIndex = 0; SetUpThi(); } else { MessageBox.Show("Hãy chọn một đề thi", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void loadDgvLichThi() { btGanNhat = qlttn.BuoiThis.Where(bt => bt.KyThi.LoaiKT == "ThiThiet" && bt.BaiLams.Where(bl => bl.maHS == hs.maHS && bl.DiemSo == -1).Count() > 0 && (bt.NgayGioThi > DateTime.Now || (DateTime.Now >= bt.NgayGioThi && DateTime.Now <= bt.NgayGioThi + bt.DeThi.ThoiGianLamBai))).FirstOrDefault(); if (btGanNhat != null) { ktGanNhat = btGanNhat.KyThi; bsLichThi.DataSource = ktGanNhat.BuoiThis.Select(bt => new { bt.KyThi.TenKT, bt.DeThi.MonHoc.tenMH, bt.NgayGioThi, bt.DeThi.ThoiGianLamBai }).ToList(); dgvLichThi.DataSource = bsLichThi; dgvLichThi.Columns["TenKT"].HeaderText = "Kỳ thi"; dgvLichThi.Columns["tenMH"].HeaderText = "Môn thi"; dgvLichThi.Columns["NgayGioThi"].HeaderText = "Thời gian bắt đầu"; dgvLichThi.Columns["ThoiGianLamBai"].HeaderText = "Thời gian làm bài"; } }
public frmThemKT(frmGiaoVien frmgv, GiaoVien GV, string maKhoi, string LoaiKT) { frmgv.Enabled = false; this.GV = GV; this.maKhoi = maKhoi; this.LoaiKT = LoaiKT; InitializeComponent(); setQlkt(); LoadQLKTDgvDeThi(); LoadQLKTDgvHocSinh(); this.FormClosing += (s, e) => { frmgv.Enabled = true; }; btnThemKT.Click += (s, e) => { if (string.IsNullOrWhiteSpace(txtTenKT.Text)) { MessageBox.Show("Không được để trống tên kỳ thi", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dtpNgayThi.Value < DateTime.Now) { MessageBox.Show("Ngày giờ thi phải lớn hơn ngày giờ hiện tại", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } List <string> dsHocSinh = new List <string>(); // sau cái vòng lặp này thì sẽ lấy ra được danh sách học sinh thi foreach (DataGridViewRow row in dgvHS.Rows) { var cell = row.Cells["Chon"] as DataGridViewCheckBoxCell; if (cell.Value == cell.TrueValue) { dsHocSinh.Add(row.Cells["maHS"].Value.ToString()); } } if (dsHocSinh.Count == 0) { MessageBox.Show($"Mời bạn chọn các thí sinh (lưu ý chọn các thí sinh không bận thi vào thời gian {dtpNgayThi.Value}", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } List <int> dsMaDT = new List <int>(); foreach (DataGridViewRow row in dgvDT.Rows) { var cell = row.Cells["Chon"] as DataGridViewCheckBoxCell; if (cell.Value == cell.TrueValue && row.Cells["maMH"].Value.ToString() == GV.maMH) { dsMaDT.Add(int.Parse(row.Cells["maDT"].Value.ToString())); } } if (dsMaDT.Count == 0) { MessageBox.Show("Hãy chọn một đề thi của bộ môn mà bạn đang phụ trách cho kỳ thi", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } using (var qlttn = new QLTTNDataContext()) { qlttn.KyThis.InsertOnSubmit(new KyThi { TenKT = txtTenKT.Text, maKhoi = this.maKhoi, maGV = GV.maGV }); qlttn.SubmitChanges(); int maktVuaThem = (int)qlttn.ExecuteQuery <decimal>("select IDENT_CURRENT('dbo.KyThi')").FirstOrDefault(); if (LoaiKT == "ThiThiet") { qlttn.KyThis.Where(kt => kt.maKT == maktVuaThem).FirstOrDefault().LoaiKT = "ThiThiet"; BuoiThi bt = new BuoiThi() { maKT = maktVuaThem, maDT = dsMaDT[0], NgayGioThi = dtpNgayThi.Value }; qlttn.BuoiThis.InsertOnSubmit(bt); foreach (var hs in dsHocSinh) { qlttn.BaiLams.InsertOnSubmit(new BaiLam { maHS = hs, maDT = bt.maDT, maKT = maktVuaThem, DiemSo = -1 }); } qlttn.SubmitChanges(); frmgv.LoadQLKTDgvKyThi(); } else if (LoaiKT == "ThiThu") { qlttn.KyThis.Where(kt => kt.maKT == maktVuaThem).FirstOrDefault().LoaiKT = "ThiThu"; foreach (var madt in dsMaDT) { BuoiThi bt = new BuoiThi() { maKT = maktVuaThem, maDT = madt, NgayGioThi = dtpNgayThi.Value }; qlttn.BuoiThis.InsertOnSubmit(bt); foreach (var hs in dsHocSinh) { qlttn.BaiLams.InsertOnSubmit(new BaiLam { maHS = hs, maDT = bt.maDT, maKT = maktVuaThem, DiemSo = -1 }); } } qlttn.SubmitChanges(); frmgv.LoadQLKTOTDgvKyThi(); } } MessageBox.Show("Thêm kỳ thi thành công", "Thông báo"); this.Close(); }; }
public frmHocSinh(frmLogin frmlogin, HocSinh hs) { this.frmlogin = frmlogin; this.hs = qlttn.HocSinhs.Where(hs1 => hs1.maHS == hs.maHS).FirstOrDefault(); InitializeComponent(); btGanNhat = qlttn.BuoiThis.Where(bt => bt.KyThi.LoaiKT == "ThiThiet" && bt.BaiLams.Where(bl => bl.maHS == hs.maHS && bl.DiemSo == -1).Count() > 0 && (bt.NgayGioThi > DateTime.Now || (DateTime.Now >= bt.NgayGioThi && DateTime.Now <= bt.NgayGioThi + bt.DeThi.ThoiGianLamBai))) .OrderBy(bt => bt.NgayGioThi) .FirstOrDefault(); if (btGanNhat != null) { ktGanNhat = btGanNhat.KyThi; bl = btGanNhat.BaiLams.Where(bl => bl.maHS == hs.maHS).FirstOrDefault(); SetUpThi(); } else { MessageBox.Show("Chào mừng bạn đến với ứng dụng thi trắc nghiệm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); ShowChildControl(tabControl1.TabPages[0], false); tabControl1.SelectedIndex = 1; } btnXuatBangDiem.Click += btnXuatBangDiem_Click; btnNopBai.Click += BtnNopBai_Click; this.FormClosing += (s, e) => { frmlogin.Show(); }; tabControl1.SelectedIndexChanged += (s, e) => { if (tabControl1.SelectedIndex == 1) { loadThongTinHocSinh(); loadCbKyThis(); loadDgvDaThi(); loadDgvLichThi(); } else if (tabControl1.SelectedIndex == 2) { loadCbKyThiThu(); loadDgvKyThiThu(); } }; btnLogout.Click += btnLogout_Click; btnThiThu.Click += btnThiThu_Click; txtHoTenHS.Validating += Txt_Validating; txtNgaySinh.Validating += Txt_Validating; txtMatKhauCu.Validating += Txt_Validating; txtMatKhauMoi.Validating += Txt_Validating; cbKyThis.SelectedIndexChanged += cbKyThis_SelectedIndexChanged; txtNgaySinh.Validating += (s, e) => { try { epMain.SetError(txtNgaySinh, ""); var ns = DateTime.Parse(txtNgaySinh.Text); } catch (Exception exec) { epMain.SetError(txtNgaySinh, "Hãy nhập đúng ngày sinh"); txtNgaySinh.Focus(); return; } }; btnCapNhat.Click += BtnCapNhat_Click; cbKyThiThu.SelectedIndexChanged += CbKyThiThu_SelectedIndexChanged; btnSavePass.Click += BtnSavePass_Click; btnChangePass.Click += BtnChangePass_Click; Load += FrmHocSinh_Load; txtMatKhauMoi.Hide(); lblPassNew.Hide(); }
public frmSuaKT(frmGiaoVien frmgv, GiaoVien GV, int makt, string maKhoi, BindingSource bsKyThi) { frmgv.Enabled = false; this.GV = GV; this.maKhoi = maKhoi; this.makt = makt; KTCCN = QLTTN.KyThis.Where(kt => kt.maKT == makt).FirstOrDefault(); BT = QLTTN.BuoiThis.Where(BT => BT.maKT == makt && BT.DeThi.maMH == GV.maMH).FirstOrDefault(); if (BT != null) { DSHS = QLTTN.BaiLams.Where(bl => bl.maKT == BT.maKT && bl.maDT == BT.maDT). Select(hs => new QLTTNDataContext.MyHocSinh { maHS = hs.maHS, HoTen = hs.HocSinh.HoTen, maKhoi = hs.HocSinh.maKhoi, maLop = hs.HocSinh.maLop, NgaySinh = (DateTime)hs.HocSinh.NgaySinh }). ToList(); DT = QLTTN.KyThis.Where(kt => kt.maKT == this.makt).FirstOrDefault() .BuoiThis.Where(BT => BT.DeThi.maMH == GV.maMH) .Select(BT => new QLTTNDataContext.MyDeThi { maDT = BT.maDT, maGV = BT.DeThi.maGV, maKhoi = BT.DeThi.maKhoi, maMH = BT.DeThi.maMH, TenDT = BT.DeThi.TenDT, ThoiGianLamBai = (TimeSpan)BT.DeThi.ThoiGianLamBai }).FirstOrDefault(); } InitializeComponent(); Load += (s, e) => { SetQLKT(); LoadQLKTDgvDeThi(); LoadQLKTDgvHocSinh(); txtTenKT.DataBindings.Add("Text", bsKyThi, "TenKT", true, DataSourceUpdateMode.Never); lblLoaiKT.DataBindings.Add("Text", bsKyThi, "LoaiKT", true, DataSourceUpdateMode.Never); lblMaKhoi.Text = maKhoi; }; this.FormClosing += (s, e) => { frmgv.Enabled = true; }; btnSuaKT.Click += (s, e) => { if (string.IsNullOrWhiteSpace(txtTenKT.Text)) { MessageBox.Show("Không được để trống tên kỳ thi", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dtpNgayThi.Value < DateTime.Now) { MessageBox.Show("Ngày giờ thi phải lớn hơn ngày giờ hiện tại", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } foreach (DataGridViewRow row in dgvHS.Rows) { var cell = row.Cells["Chon"] as DataGridViewCheckBoxCell; if (cell.Value == cell.TrueValue) { DSMaHSDuocChon.Add(row.Cells["maHS"].Value.ToString()); } } if (DSMaHSDuocChon.Count == 0) { MessageBox.Show($"Mời bạn chọn các thí sinh (lưu ý chọn các thí sinh không bận thi vào thời gian {dtpNgayThi.Value}", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } List <int> dsMaDT = new List <int>(); foreach (DataGridViewRow row in dgvDT.Rows) { var cell = row.Cells["Chon"] as DataGridViewCheckBoxCell; if (cell.Value == cell.TrueValue && row.Cells["maMH"].Value.ToString() == GV.maMH) { dsMaDT.Add(int.Parse(row.Cells["maDT"].Value.ToString())); } } if (dsMaDT.Count == 0) { MessageBox.Show("Hãy chọn một đề thi của bộ môn mà bạn đang phụ trách cho kỳ thi", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } try { var KTCCN = QLTTN.KyThis.Where(kythi => kythi.maKT == makt).FirstOrDefault(); KTCCN.TenKT = txtTenKT.Text; if (KTCCN.LoaiKT == "ThiThiet") { if (BT != null) { QLTTN.BaiLams.DeleteAllOnSubmit(BT.BaiLams); QLTTN.BuoiThis.DeleteOnSubmit(BT); QLTTN.SubmitChanges(); } BT = new BuoiThi { maKT = KTCCN.maKT, maDT = dsMaDT[0], NgayGioThi = dtpNgayThi.Value }; if (dsMaDT.Count > 0) { // tạo buổi thi mới QLTTN.BuoiThis.InsertOnSubmit(BT); // thêm các thí sinh vào buổi thi mới này foreach (var mahs in DSMaHSDuocChon) { QLTTN.BaiLams.InsertOnSubmit(new BaiLam { maKT = KTCCN.maKT, maDT = dsMaDT[0], maHS = mahs, DiemSo = -1 }); } } } else if (KTCCN.LoaiKT == "ThiThu") { foreach (var BT in KTCCN.BuoiThis) { QLTTN.BaiLams.DeleteAllOnSubmit(BT.BaiLams); QLTTN.BuoiThis.DeleteOnSubmit(BT); QLTTN.SubmitChanges(); } foreach (var madt in dsMaDT) { BuoiThi BT = new BuoiThi() { maKT = KTCCN.maKT, maDT = madt, NgayGioThi = dtpNgayThi.Value }; QLTTN.BuoiThis.InsertOnSubmit(BT); QLTTN.SubmitChanges(); foreach (var hs in DSHS) { QLTTN.BaiLams.InsertOnSubmit(new BaiLam { maHS = hs.maHS, maDT = BT.maDT, maKT = KTCCN.maKT, DiemSo = -1 }); } } } QLTTN.SubmitChanges(); frmgv.LoadQLKTOTDgvKyThi(); MessageBox.Show("Cập nhật thành công", "Thông báo"); this.Close(); } catch (Exception exc) { MessageBox.Show($"KHÔNG THỂ CẬP NHẬT KỲ THI ĐÃ DIỄN RA {Environment.NewLine}{exc.Message}", "Thông báo từ btnCapNhatKT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } }; }