예제 #1
0
        public async Task CreateBaiLam(BaiLam baiLam)
        {
            await _context.BaiLamContext.AddAsync(baiLam);

            await _context.SaveChangesAsync();
        }
예제 #2
0
 public async Task DeleteBaiLam(BaiLam baiLam)
 {
     _context.BaiLamContext.Remove(baiLam);
     await _context.SaveChangesAsync();
 }
예제 #3
0
 public void Update(BaiLam baiLam)
 {
     _baiLamRepository.Update(baiLam);
 }
예제 #4
0
 public BaiLam Add(BaiLam baiLam)
 {
     return(_baiLamRepository.Add(baiLam));
 }
예제 #5
0
        /// <summary>
        /// chấm tthi
        /// </summary>
        protected virtual void LoadGrid()
        {
            var stt = 1;

            _tbError = GetTable();
            var tbbailam   = LoadData.Load(207, _idkythi);
            var tabledapan = LoadData.Load(7, _idkythi);

            if (tabledapan.Rows.Count == 0)
            {
                lock (LockTotal)
                {
                    OnCloseDialog();
                }
                Invoke(
                    (Action)(() => MessageBox.Show(@"Chưa Import đáp án của mã đề", @"Thông báo",
                                                   MessageBoxButtons.OK, MessageBoxIcon.Warning)));
                lock (LockTotal)
                {
                    OnCloseDialog();
                }
                return;
            }
            if (tbbailam.Rows.Count > 0)
            {
                foreach (DataRow dataRow in tbbailam.Rows)
                {
                    double diem       = 0;
                    var    listbailam = dataRow["KetQua"].ToString();
                    var    tbdapan    = SearchData.Timkiemmade2(dataRow["MaDe"].ToString(), _idkythi);
                    if (listbailam.Length != tbdapan.Rows.Count)
                    {
                        _tbError.Rows.Add(stt++,
                                          dataRow["MaSV"].ToString(),
                                          dataRow["MaDe"].ToString(),
                                          dataRow["KetQua"].ToString()
                                          );
                        continue;
                    }
                    for (var i = 0; i < tbdapan.Rows.Count; i++)
                    {
                        var a = listbailam[i].ToString();
                        var s = tbdapan.Rows[i]["Dapan"].ToString();
                        var c = tbdapan.Rows[i]["ThangDiem"].ToString();
                        if (a == s)
                        {
                            diem = diem + double.Parse(c);
                        }
                    }
                    var d  = Math.Round(diem, 1);
                    var hs = new BaiLam
                    {
                        IdKyThi = _idkythi,
                        MaSV    = int.Parse(dataRow["MaSV"].ToString()),
                        DiemThi = d
                    };
                    _listUpdate.Add(hs);
                    dataRow["DiemThi"] = d;
                }
                Invoke((Action)(() => dgv_DanhSach.DataSource = tbbailam));
                lock (LockTotal)
                {
                    OnCloseDialog();
                }
            }
            else
            {
                lock (LockTotal)
                {
                    OnCloseDialog();
                }
                Invoke(
                    (Action)(() => MessageBox.Show(@"Chưa Import bài làm của sinh viên", @"Thông báo",
                                                   MessageBoxButtons.OK, MessageBoxIcon.Warning)));
            }
        }
예제 #6
0
        public List <BaiLam> ParseBaiLam(Range xlRange, List <DeThi> lsDethi)
        {
            if (xlRange == null)
            {
                return(null);;
            }
            List <BaiLam> lsBaiLam     = new List <BaiLam>();
            int           rowCount     = xlRange.Rows.Count;
            int           colCount     = xlRange.Columns.Count;
            int           indexColData = 0;
            int           lengthSBD    = 6; //nếu tăng lên n thì khai thêm la n
            int           lengthMade   = 3;

            bool checkParseData = false;

            //check data
            for (int i = 1; i <= rowCount; i++)
            {
                BaiLam baiLam = null;
                //get row and col for starting parseData
                if (!checkParseData)
                {
                    for (int j = 1; j <= colCount; j++)
                    {
                        if (xlRange.Cells[i, j] != null)
                        {
                            object value = xlRange.Cells[i, j].Value2;
                            if (value != null)
                            {
                                if (value.ToString().Trim().Replace(" ", "").Equals("Filename", StringComparison.CurrentCultureIgnoreCase))
                                {
                                    checkParseData = true;
                                    indexColData   = j;
                                    totalProcess   = totalProcess + 20;
                                    SetProgressValue();
                                    break;
                                }
                            }
                        }
                    }
                }
                else
                {
                    var page = xlRange.Cells[i, indexColData].Value2;
                    if (!string.IsNullOrEmpty(FuncUtils.GetStringValue(page)))
                    {
                        baiLam          = new BaiLam();
                        baiLam.rowIndex = i;
                        //parse SBD
                        var sbdUse = new StringBuilder();
                        for (int j = indexColData + 1; j <= indexColData + lengthSBD; j++)
                        {
                            object value = xlRange.Cells[i, j].Value2;
                            //if (value != null){ //không có sbd vẫn làm tiếp
                            sbdUse.Append(FuncUtils.GetStringValue(value));
                            //}
                        }
                        if (!string.IsNullOrEmpty(sbdUse.ToString()))
                        {
                            baiLam.SBD = sbdUse.ToString();
                            //parse made
                            var made = new StringBuilder();
                            for (int j = (indexColData + lengthSBD + 1); j <= (indexColData + lengthSBD + lengthMade); j++)
                            {
                                object value = xlRange.Cells[i, j].Value2;
                                //if (value != null) //mã đề thiếu vẫn làm
                                //{
                                made.Append(FuncUtils.GetStringValue(value));
                                //}
                            }
                            baiLam.MaDe = made.ToString();

                            //parse bai lam
                            var startIndex = indexColData + lengthSBD + lengthMade;
                            var cauIndex   = 0;
                            var lsDapAn    = new List <DapAn>();
                            for (int j = startIndex + 1; j <= colCount; j++)
                            {
                                object value = xlRange.Cells[i, j].Value2;

                                /*if (value != null)
                                 * {*/
                                cauIndex++;
                                lsDapAn.Add(new DapAn()
                                {
                                    Cau      = cauIndex,
                                    Result   = FuncUtils.GetStringValue(value),
                                    colIndex = j,
                                    rowIndex = i
                                });
                                /*}*/
                            }
                            var maxObject = lsDapAn.OrderByDescending(item => item.colIndex).First();
                            baiLam.columnIndexResult = maxObject.colIndex + 1; //lấy index cột cuối cùng
                            baiLam.DapAns            = lsDapAn;
                        }
                    }
                }
                if (baiLam != null && !string.IsNullOrEmpty(baiLam.SBD) && !string.IsNullOrEmpty(baiLam.MaDe))
                {
                    lsBaiLam.Add(baiLam);
                }
            }
            if (!checkParseData)
            {
                throw new NotSupportedException("File bài làm lỗi");
            }
            totalProcess = totalProcess + 20;
            SetProgressValue();
            CalculateDiem(lsBaiLam, lsDethi);
            totalProcess = totalProcess + 10;
            SetProgressValue();
            return(lsBaiLam);
        }
예제 #7
0
        public frmHocSinh(frmLogin frmlogin, HocSinh hs)
        {
            this.frmlogin = frmlogin;
            this.hs       = qlttn.HocSinhQL.Where(hs1 => hs1.maHS == hs.maHS).FirstOrDefault();
            InitializeComponent();
            btGanNhat = qlttn.BuoiThiQL.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("Sắp tới chưa có kỳ thi nào diễn ra, hãy tận hưởng đi nhé", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                ShowChildControl(tabControl1.TabPages[0], false);
                tabControl1.SelectedIndex = 1;
            }

            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();
                }
            };
            txtHoTenHS.Validating    += Txt_Validating;
            txtNgaySinh.Validating   += Txt_Validating;
            txtMatKhauCu.Validating  += Txt_Validating;
            txtMatKhauMoi.Validating += Txt_Validating;
            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;

            Load += FrmHocSinh_Load;
        }