/// <summary> /// Kiểm tra câu hỏi đã có trong đề này chưa /// </summary> /// <param name="threadID"></param> /// <param name="questionID"></param> /// <returns></returns> bool TestCodeThreadQuestion(string threadID, string questionID) { TestOnlineDataContext db = new TestOnlineDataContext(); tblThreadQuestion tbl = db.tblThreadQuestions.SingleOrDefault(c => c.ThreadsID == threadID && c.QuestionsID.ToString() == questionID); if (tbl != null) { return(true); } else { return(false); } }
protected void btnEdit1_Click(object sender, EventArgs e) { if (txtMaxScores.Text == "" || txtThreadID.Text == "" || txtThreadName.Text == "" || ddlSubject.SelectedIndex == (ddlSubject.Items.Count - 1)) { lblThongBao.Text = "Bạn chưa nhập đầy đủ thông tin"; lblThongBao.Visible = true; } else { if (cls.KtraNumberFloat(txtMaxScores.Text) == true) { if (fulFile.HasFile) { #region Tạo đề thi tblThread th = db.tblThreads.SingleOrDefault(c => c.ThreadsID == txtThreadID.Text); if (th != null) { UploadFile(fulFile); th.SubjectID = ddlSubject.SelectedValue.ToString().Trim(); th.TheadName = txtThreadName.Text; th.ThreadsID = txtThreadID.Text; th.MaxScores = float.Parse(txtMaxScores.Text); th.Status = 4; //tbl.DateTest = DateTime.Parse(date); th.CreateDate = DateTime.Now; db.SubmitChanges(); lblThongBao.Text = "Bạn đã sửa thành công"; lblThongBao.Visible = true; LoadGrid(); txtThreadID.Text = sinhmatudong(); #endregion #region lấy dữ liệu từ excel vào Gridview // OpenFileDialog openFi = new OpenFileDialog(); // fulFile.filt.Filter = "Kiểu file: (*.xls)|*.xls"; ex.Application excelObj = new Microsoft.Office.Interop.Excel.Application(); // if (openFi.ShowDialog() == DialogResult.OK) // { ex.Workbook myWorkBook = excelObj.Workbooks.Open(Server.MapPath(@"/FileUpload/Question/" + fulFile.FileName), 0, true, 5, "", "", true, ex.XlPlatform.xlWindows, "\t", false, false, 0, true, 0, 0); ex.Sheets sheets = myWorkBook.Worksheets; ex.Worksheet worksheet = (ex.Worksheet)sheets.get_Item(1); object rowIndex = 7; int index = 0; int count = 7; while (((ex.Range)worksheet.Cells[rowIndex, 2]).Value2 != null) { if (Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 1]).Value2) != null && ((Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 3]).Value2) != null))) { string subjectCode = Convert.ToString(((ex.Range)worksheet.Cells[2, 2]).Value2); string content = Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 2]).Value2); string daA = Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 3]).Value2); string daB = Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 4]).Value2); string daC = Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 5]).Value2); string daD = Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 6]).Value2); string answer = Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 7]).Value2); string level = Convert.ToString(((ex.Range)worksheet.Cells[rowIndex, 8]).Value2); if (ddlSubject.SelectedValue.ToString().ToLower().Trim() == subjectCode.ToLower().Trim()) { if (TestQuestionCode(content) == false) { tblQuestion tbl = new tblQuestion(); tbl.Content = content; tbl.ChocieA = daA; tbl.ChocieB = daB; tbl.ChocieC = daC; tbl.ChocieD = daD; if (answer.Trim().ToLower() == "a") { tbl.Answer = daA; } if (answer.Trim().ToLower() == "b") { tbl.Answer = daB; } if (answer.Trim().ToLower() == "c") { tbl.Answer = daC; } if (answer.Trim().ToLower() == "d") { tbl.Answer = daD; } tbl.SubjectID = subjectCode; tbl.Level = int.Parse(level); db.tblQuestions.InsertOnSubmit(tbl); db.SubmitChanges(); if (TestCodeThreadQuestion(th.ThreadsID, tbl.QuestionsID.ToString()) == false) { tblThreadQuestion thq = new tblThreadQuestion(); thq.QuestionsID = tbl.QuestionsID; thq.ThreadsID = th.ThreadsID; db.tblThreadQuestions.InsertOnSubmit(thq); db.SubmitChanges(); } } else { tblQuestion tbQuestion = db.tblQuestions.SingleOrDefault(c => c.Content.Trim().ToLower() == content.ToLower()); if (tbQuestion != null) { if (TestCodeThreadQuestion(th.ThreadsID, tbQuestion.QuestionsID.ToString()) == false) { tblThreadQuestion thq = new tblThreadQuestion(); thq.QuestionsID = tbQuestion.QuestionsID; thq.ThreadsID = th.ThreadsID; db.tblThreadQuestions.InsertOnSubmit(thq); db.SubmitChanges(); } } } } else { lblThongBao.Text = "Mã môn học và mã file excel bạn chọn không trùng nhau"; lblThongBao.Visible = true; break; } index++; } rowIndex = ++count; } #endregion } } else { lblThongBao.Text = "Chưa chọn file câu hỏi"; lblThongBao.Visible = true; } } else { lblThongBao.Text = "Tổng điểm bạn phải nhập số"; lblThongBao.Visible = true; } } }
void taodethi(int mucdo, string mamon, string made) { List <string> ketqua = new List <string>(); //de kho if (mucdo == 1) { int socaukho = int.Parse(txtNumberQuestion.Text) * 60 / 100; int socaude = int.Parse(txtNumberQuestion.Text) * 20 / 100; int socautrungbinh = int.Parse(txtNumberQuestion.Text) - (socaukho + socaude); var cl = from c in db.tblQuestions where c.SubjectID == mamon select new { c.QuestionsID, c.Level }; List <string> caukho = new List <string>(); List <string> cautrungbinh = new List <string>(); List <string> caude = new List <string>(); foreach (var item in cl) { if (item.Level == 1) { caude.Add(item.QuestionsID.ToString()); } if (item.Level == 2) { cautrungbinh.Add(item.QuestionsID.ToString()); } if (item.Level == 3) { caukho.Add(item.QuestionsID.ToString()); } } int i = 0; while (i != socaude) { Random r = new Random(); int tmp = r.Next(caude.Count); ketqua.Add(caude[tmp]); caude.Remove(caude[tmp]); i++; } int j = 0; while (j != socautrungbinh) { Random r = new Random(); int tmp = r.Next(cautrungbinh.Count); ketqua.Add(cautrungbinh[tmp]); cautrungbinh.Remove(cautrungbinh[tmp]); j++; } int k = 0; while (k != socaukho) { Random r = new Random(); int tmp = r.Next(caukho.Count); ketqua.Add(caukho[tmp]); caukho.Remove(caukho[tmp]); k++; } } //de trung binh if (mucdo == 2) { int socaukho = int.Parse(txtNumberQuestion.Text) * 50 / 100; int socaude = int.Parse(txtNumberQuestion.Text) * 25 / 100; int socautrungbinh = int.Parse(txtNumberQuestion.Text) - (socaukho + socaude); var cl = from c in db.tblQuestions where c.SubjectID == mamon select new { c.QuestionsID, c.Level }; List <string> caukho = new List <string>(); List <string> cautrungbinh = new List <string>(); List <string> caude = new List <string>(); foreach (var item in cl) { if (item.Level == 1) { caude.Add(item.QuestionsID.ToString()); } if (item.Level == 2) { cautrungbinh.Add(item.QuestionsID.ToString()); } if (item.Level == 3) { caukho.Add(item.QuestionsID.ToString()); } } int i = 0; while (i != socaude) { Random r = new Random(); int tmp = r.Next(caude.Count); ketqua.Add(caude[tmp]); caude.Remove(caude[tmp]); i++; } int j = 0; while (j != socautrungbinh) { Random r = new Random(); int tmp = r.Next(cautrungbinh.Count); ketqua.Add(cautrungbinh[tmp]); cautrungbinh.Remove(cautrungbinh[tmp]); j++; } int k = 0; while (k != socaukho) { Random r = new Random(); int tmp = r.Next(caukho.Count); ketqua.Add(caukho[tmp]); caukho.Remove(caukho[tmp]); k++; } } // de de if (mucdo == 3) { int socaukho = int.Parse(txtNumberQuestion.Text) * 40 / 100; int socaude = int.Parse(txtNumberQuestion.Text) * 30 / 100; int socautrungbinh = int.Parse(txtNumberQuestion.Text) - (socaukho + socaude); var cl = from c in db.tblQuestions where c.SubjectID == mamon select new { c.QuestionsID, c.Level }; List <string> caukho = new List <string>(); List <string> cautrungbinh = new List <string>(); List <string> caude = new List <string>(); foreach (var item in cl) { if (item.Level == 1) { caude.Add(item.QuestionsID.ToString()); } if (item.Level == 2) { cautrungbinh.Add(item.QuestionsID.ToString()); } if (item.Level == 3) { caukho.Add(item.QuestionsID.ToString()); } } int i = 0; while (i != socaude) { Random r = new Random(); int tmp = r.Next(caude.Count); ketqua.Add(caude[tmp]); caude.Remove(caude[tmp]); i++; } int j = 0; while (j != socautrungbinh) { Random r = new Random(); int tmp = r.Next(cautrungbinh.Count); ketqua.Add(cautrungbinh[tmp]); cautrungbinh.Remove(cautrungbinh[tmp]); j++; } int k = 0; while (k != socaukho) { Random r = new Random(); int tmp = r.Next(caukho.Count); ketqua.Add(caukho[tmp]); caukho.Remove(caukho[tmp]); k++; } } tblThreadQuestion tbl; foreach (string item in ketqua) { tbl = new tblThreadQuestion(); tbl.QuestionsID = int.Parse(item); tbl.ThreadsID = made; db.tblThreadQuestions.InsertOnSubmit(tbl); db.SubmitChanges(); } }