protected void btnOK_Click(object sender, EventArgs e) { //获取当前考试的生成试卷的状态和次数 RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(ViewState["ExamID"].ToString())); string strSql = "select * from Random_Exam_Computer_Server where Random_Exam_ID=" + ViewState["ExamID"].ToString() + " and Computer_Server_No=" + PrjPub.ServerNo; OracleAccess db = new OracleAccess(); DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; if (txtCode.Text != dr["Random_Exam_Code"].ToString()) { SessionSet.PageMessage = "验证码输入有误,请重新输入!"; txtCode.Text = ""; return; } //获取当前考生即将考试的试卷 string strIP = Pub.GetRealIP(); RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(ViewState["StudentID"].ToString()), Convert.ToInt32(ViewState["ExamID"].ToString())); ViewState["CurrentID"] = objResultCurrent.RandomExamResultId; //objResultCurrentBll.UpdateRandomExamResultCurrentIP(Convert.ToInt32(ViewState["CurrentID"].ToString()), strIP); RandomExamApplyBLL objApplyBll = new RandomExamApplyBLL(); RandomExamApply objNowApply = objApplyBll.GetRandomExamApplyByExamResultCurID(objResultCurrent.RandomExamResultId); if (objNowApply.RandomExamApplyID == 0) { RandomExamApply objApply = new RandomExamApply(); objApply.RandomExamResultCurID = Convert.ToInt32(ViewState["CurrentID"].ToString()); objApply.RandomExamID = Convert.ToInt32(ViewState["ExamID"].ToString()); objApply.CodeFlag = txtCode.Text == dr["Random_Exam_Code"].ToString(); objApply.ApplyStatus = 0; objApply.IPAddress = strIP; hfID.Value = objApplyBll.AddRandomExamApply(objApply).ToString(); } else { objNowApply.CodeFlag = txtCode.Text == dr["Random_Exam_Code"].ToString(); objNowApply.ApplyStatus = 0; objNowApply.IPAddress = Pub.GetRealIP(); objApplyBll.UpdateRandomExamApply(objNowApply); hfID.Value = objNowApply.RandomExamApplyID.ToString(); } lblApply.Text = "已提交考试请求,请等待回复......"; btnClose.Visible = true; btnOK.Visible = false; lblTitle.Visible = false; txtCode.Visible = false; img.Visible = true; }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack && !CallBack1.IsCallback) { string strExamId = Request.QueryString.Get("id"); ViewState["BeginTime"] = DateTime.Now.ToString(); ViewState["StudentID"] = Request.QueryString.Get("employeeID"); if (strExamId != null && strExamId != "") { RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(int.Parse(strExamId)); #region 考前判断(屏蔽) //if (randomExam.StartMode == 2 && randomExam.OrgId.ToString() != ConfigurationManager.AppSettings["StationID"].ToString() && randomExam.OrgId != 32) //{ // OrganizationBLL OrgBll = new OrganizationBLL(); // string strOrgName = OrgBll.GetOrganization(randomExam.OrgId).ShortName; // Response.Write("<script>alert('该考试为" + strOrgName + "统一时间考试,必须在" + strOrgName + "参加!'); top.window.close();</script>"); // return; //} ////如果当前考试为手动控制,则需判断考试是否开始 //if (randomExam.StartMode == 2 && randomExam.IsStart == 0) //{ // Response.Write("<script>alert('该考试还没有开始,请耐心等待!'); top.window.close();</script>"); // return; //} //if (randomExam.StartMode == 2 && randomExam.IsStart == 2) //{ // Response.Write("<script>alert('该考试已经结束!'); top.window.close();</script>"); // return; //} #endregion HiddenFieldExamTime.Value = DateTime.Now.AddMinutes(randomExam.ExamTime).ToString(); HfExamTime.Value = (randomExam.ExamTime * 60).ToString(); //获取当前考生最新需要做的考试试卷主表记录 RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(ViewState["StudentID"].ToString()), Convert.ToInt32(strExamId)); //设置当前考生本次考试还剩下的考试时间 HfExamTime.Value = ((randomExam.ExamTime * 60) - objResultCurrent.ExamTime).ToString(); FillPage(strExamId); } } }
protected void Callback1_Callback(object sender, CallBackEventArgs e) { try { string strId = ViewState["ExamID"].ToString(); RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetRandomExamResult(Convert.ToInt32(ViewState["RandomExamResultID"].ToString())); if (objResultCurrent.RandomExamId == 0) { hfStart.Value = "2"; } else { objResultCurrent.ExamTime = Convert.ToInt32(ViewState["LastExamTime"].ToString()) + GetSecondBetweenTwoDate(DateTime.Now, DateTime.Parse(ViewState["BeginTime"].ToString())); objResultCurrentBll.UpdateRandomExamResultCurrent(objResultCurrent); RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam objRandomExam = objBll.GetExam(Convert.ToInt32(strId)); hfStart.Value = objRandomExam.IsStart.ToString(); } if (hfStart.Value == "2") { RandomExamResultBLL objResultBll = new RandomExamResultBLL(); RandomExamResult objResult = objResultBll.GetNewRandomExamResultByExamineeID(Convert.ToInt32(ViewState["EmployeeID"].ToString()), Convert.ToInt32(strId)); hfResultID.Value = objResult.RandomExamResultId.ToString(); } } catch { hfStart.Value = "-1"; } hfResultID.RenderControl(e.Output); hfStart.RenderControl(e.Output); }
public void FillPaper() { string strId = Request.QueryString.Get("id"); RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(int.Parse(strId)); ViewState["Year"] = randomExam.BeginTime.Year.ToString(); RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent randomExamResult = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(Request.QueryString.Get("employeeID")), Convert.ToInt32(strId)); int RandomExamId = Convert.ToInt32(strId); int randomExamResultId = randomExamResult.RandomExamResultId; RandomExamItemBLL randomItemBLL = new RandomExamItemBLL(); RandomExamSubjectBLL subjectBLL = new RandomExamSubjectBLL(); IList <RandomExamSubject> randomExamSubjects = subjectBLL.GetRandomExamSubjectByRandomExamId(RandomExamId); RandomExamResultAnswerCurrentBLL randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL(); IList <RandomExamResultAnswerCurrent> examResultAnswers = new List <RandomExamResultAnswerCurrent>(); examResultAnswers = randomExamResultAnswerBLL.GetExamResultAnswersCurrent(randomExamResultId); OracleAccess db = new OracleAccess(); if (randomExamSubjects != null) { for (int i = 0; i < randomExamSubjects.Count; i++) { RandomExamSubject paperSubject = randomExamSubjects[i]; IList <RandomExamItem> PaperItems = new List <RandomExamItem>(); PaperItems = randomItemBLL.GetItemsCurrent(paperSubject.RandomExamSubjectId, randomExamResultId, Convert.ToInt32(ViewState["Year"].ToString())); Response.Write("<br>"); Response.Write("<span class='StudentLeftInfo'><b> 第" + GetNo(i) + "大题:" + paperSubject.SubjectName + "</b></span>"); Response.Write("<br>"); if (PaperItems != null) { Response.Write("<table width='100%' border='1'>"); int z = 1; int tempK = 0; int count = 1; for (int j = 0; j < PaperItems.Count; j++) { RandomExamItem paperItem = PaperItems[j]; int k = j + 1; if (paperItem.TypeId != PrjPub.ITEMTYPE_FILLBLANKDETAIL && paperItem.TypeId != PrjPub.ITEMTYPE_FILLBLANK) { z = 1; if (k % 5 == 1) { Response.Write("</tr >"); Response.Write("<tr><td class='StudentTableInfo' id='Item" + i + j + "' >" + "<a href='AttendExamNew.aspx?id=" + strId + "&employeeID=" + Request.QueryString.Get("employeeID") + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + k + "</b></a></td>"); } else { Response.Write("<td class='StudentTableInfo' id='Item" + i + j + "' >" + "<a href='AttendExamNew.aspx?id=" + strId + "&employeeID=" + Request.QueryString.Get("employeeID") + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + k + "</b></a></td>"); } } else { if (paperItem.TypeId == PrjPub.ITEMTYPE_FILLBLANK) { z = 1; tempK++; } if (count % 3 == 1) { Response.Write("</tr >"); Response.Write("<tr><td class='StudentTableInfo' id='Item" + i + j + "' >" + "<a href='AttendExamNew.aspx?id=" + strId + "&employeeID=" + Request.QueryString.Get("employeeID") + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + tempK + "-(" + z + ")</b></a></td>"); } else { Response.Write("<td class='StudentTableInfo' id='Item" + i + j + "' >" + "<a href='AttendExamNew.aspx?id=" + strId + "&employeeID=" + Request.QueryString.Get("employeeID") + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + tempK + "-(" + z + ")</b></a></td>"); } z++; count++; } } Response.Write("</tr >"); Response.Write("</table>"); } } //ClientScript.RegisterStartupScript(GetType(), "StartStyle", "<script>StartStyle()</script>"); } else { SessionSet.PageMessage = "未找到记录!"; } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string strExamId = Request.QueryString.Get("id"); ViewState["StudentID"] = Request.QueryString.Get("employeeID"); ViewState["ExamID"] = strExamId; if (strExamId != null && strExamId != "") { RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(int.Parse(strExamId)); OracleAccess db = new OracleAccess(); string strSql = @"select * from Random_Exam_Result_Answer_Cur where Random_Exam_Result_ID in ( select Random_Exam_Result_ID from Random_Exam_Result_Current where Examinee_ID=" + ViewState["StudentID"] + " and Random_Exam_ID=" + strExamId + ")"; DataSet dsAnswer = db.RunSqlDataSet(strSql); strSql = "select * from Random_Exam_Result_Current where Examinee_ID=" + ViewState["StudentID"] + " and Random_Exam_ID=" + strExamId; DataSet dsCurrent = db.RunSqlDataSet(strSql); if (dsAnswer.Tables[0].Rows.Count == 0 && dsCurrent.Tables[0].Rows.Count > 0) { Response.Write("<script>alert('您的考试试卷生成有误,请联系监考老师删除您的考试试卷后重新生成!'); top.close();</script>"); return; } strSql = "select * from Random_Exam_Computer_Server where Random_Exam_ID=" + ViewState["ExamID"].ToString() + " and Computer_Server_No=" + PrjPub.ServerNo; DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; //如果当前考试为手动控制,则需判断考试是否开始 if (randomExam.StartMode == 2 && dr["Is_Start"].ToString() == "0") { Response.Write("<script>alert('该考试还没有开始,请耐心等待!'); top.close();</script>"); return; } if (randomExam.StartMode == 2 && dr["Is_Start"].ToString() == "2") { Response.Write("<script>alert('该考试已经结束!'); top.close();</script>"); return; } RandomExamResultBLL RandomExamResultBLL = new RandomExamResultBLL(); int nowCount; IList <RandomExamResult> RandomExamResults = RandomExamResultBLL.GetRandomExamResultByExamineeID( Convert.ToInt32(Request.QueryString.Get("employeeID")), int.Parse(strExamId)); nowCount = RandomExamResults.Count; if (nowCount > (randomExam.MaxExamTimes - 1)) { Response.Write("<script>alert('您参加考试的次数已经达到考试设定的最大次数!'); top.close();</script>"); return; } RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent randomExamResult = objResultCurrentBll.GetNowRandomExamResultInfo( Convert.ToInt32(Request.QueryString.Get("employeeID")), Convert.ToInt32(strExamId)); if (randomExamResult.RandomExamResultId == 0) { Response.Write("<script>alert('该考试已经结束!'); top.close();</script>"); return; } } FillPage(); } }
private void SaveAnswerToDB(string strAnswer) { try { string strId = Request.QueryString.Get("ExamID"); RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(Request.QueryString["StudentID"].ToString()), Convert.ToInt32(strId)); //更新考试成绩表时传入的主键应为站段的成绩表的主键ID objResultCurrent.RandomExamResultId = int.Parse(Request.QueryString["RandomExamResultID"].ToString()); objResultCurrent.RandomExamId = int.Parse(strId); objResultCurrent.AutoScore = 0; objResultCurrent.CurrentDateTime = DateTime.Parse(ViewState["EndTime"].ToString()); objResultCurrent.ExamTime = Convert.ToInt32(Request.QueryString["ExamTime"]); objResultCurrent.EndDateTime = DateTime.Parse(ViewState["EndTime"].ToString()); objResultCurrent.Score = 0; objResultCurrent.OrganizationId = int.Parse(Request.QueryString["OrgID"].ToString()); objResultCurrent.Memo = ""; objResultCurrent.StatusId = 2; objResultCurrent.AutoScore = 0; objResultCurrent.CorrectRate = 0; objResultCurrent.ExamineeId = int.Parse(Request.QueryString["StudentID"].ToString()); string[] str1 = strAnswer.Split(new char[] { '$' }); RandomExamResultAnswerCurrentBLL randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL(); //randomExamResultAnswerBLL.DeleteExamResultAnswerCurrent(Convert.ToInt32(ViewState["RandomExamResultID"].ToString())); IList <RandomExamResultAnswerCurrent> randomExamResultAnswers = new List <RandomExamResultAnswerCurrent>(); int randomExamResultId = int.Parse(Request.QueryString["RandomExamResultID"].ToString()); for (int n = 0; n < str1.Length; n++) { string str2 = str1[n].ToString(); string[] str3 = str2.Split(new char[] { '|' }); string strPaperItemId = str3[0].ToString(); string strTrueAnswer = str2.ToString().Substring(strPaperItemId.Length + 1); RandomExamResultAnswerCurrent randomExamResultAnswer = new RandomExamResultAnswerCurrent(); randomExamResultAnswer.RandomExamResultId = randomExamResultId; randomExamResultAnswer.RandomExamItemId = int.Parse(strPaperItemId); randomExamResultAnswer.JudgeStatusId = 0; randomExamResultAnswer.JudgeRemark = string.Empty; randomExamResultAnswer.ExamTime = 0; randomExamResultAnswer.Answer = strTrueAnswer; randomExamResultAnswers.Add(randomExamResultAnswer); } //将实时考试答卷删除,将最终考试答卷插入 randomExamResultAnswerBLL.AddExamResultAnswerCurrentSave(randomExamResultId, randomExamResultAnswers); //更新实时考试记录 objResultCurrentBll.UpdateRandomExamResultCurrent(objResultCurrent); //将实时考试记录(临时表)转存到正式考试成绩表和答卷表 RandomExamResultBLL objResultBll = new RandomExamResultBLL(); int randomExamResultID = objResultBll.RemoveResultAnswer(Convert.ToInt32(Request.QueryString["RandomExamResultID"].ToString())); //如果在站段是随到随考考试,成绩自动上传至路局 //if(ViewState["NowStartMode"].ToString() == PrjPub.START_MODE_NO_CONTROL.ToString() && !PrjPub.IsServerCenter) //{ // objResultBll.RemoveRandomExamResultToServer(Convert.ToInt32(strId), Convert.ToInt32(ConfigurationManager.AppSettings["StationID"])); //} Response.Write( "<script>window.dialogArguments.parent.location = '/RailExamBao/Online/Exam/ExamSuccess.aspx?ExamType=1&ExamResultID=" + randomExamResultID + "';window.close();</script>"); } catch { SessionSet.PageMessage = "提交失败!"; btnUpload.Visible = true; btnClose.Visible = true; } }
private void AddResultToDB(string strId) { RandomExamSubjectBLL subjectBLL = new RandomExamSubjectBLL(); RandomExamItemBLL randomItemBLL = new RandomExamItemBLL(); RandomExamResultCurrentBLL randomExamResultBLL = new RandomExamResultCurrentBLL(); RandomExamStrategyBLL strategyBLL = new RandomExamStrategyBLL(); RandomExamResultAnswerCurrentBLL randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL(); IList <RandomExamItem> randomExamItems = new List <RandomExamItem>(); RailExam.Model.RandomExamResultCurrent randomExamResult = new RailExam.Model.RandomExamResultCurrent(); randomExamResult.RandomExamId = int.Parse(strId); randomExamResult.AutoScore = 0; randomExamResult.BeginDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.CurrentDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.ExamTime = 0; randomExamResult.EndDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.Score = 0; randomExamResult.OrganizationId = int.Parse(ViewState["OrgID"].ToString()); randomExamResult.Memo = ""; randomExamResult.StatusId = 1; randomExamResult.AutoScore = 0; randomExamResult.CorrectRate = 0; randomExamResult.ExamineeId = int.Parse(ViewState["EmployeeID"].ToString()); int nRandomExamResultPK = randomExamResultBLL.AddRandomExamResultCurrent(randomExamResult); string strSql = "select a.* from Computer_Room a " + "inner join Computer_Server b on a.Computer_Server_ID=b.Computer_Server_ID " + "where Computer_Server_No='" + PrjPub.ServerNo + "'"; OracleAccess db = new OracleAccess(); DataSet ds = db.RunSqlDataSet(strSql); string computerRoomID = string.Empty; if (ds.Tables[0].Rows.Count > 0) { computerRoomID = ds.Tables[0].Rows[0]["Computer_Room_ID"].ToString(); } strSql = @"insert into Random_Exam_Result_Detail values(" + nRandomExamResultPK + "," + int.Parse(strId) + "," + ViewState["EmployeeID"].ToString() + ",0,null,null,null,Random_Exam_Result_Detail_Seq.Nextval," + "0,null," + (computerRoomID == string.Empty ? "null" : computerRoomID) + ",null,null,null,null)"; db.ExecuteNonQuery(strSql); ViewState["RandomExamResultID"] = nRandomExamResultPK; IList <RandomExamSubject> randomExamSubjects = subjectBLL.GetRandomExamSubjectByRandomExamId(int.Parse(strId)); Hashtable hashTableItemIds = new Hashtable(); Hashtable htRandomExamItemIds = new Hashtable(); for (int i = 0; i < randomExamSubjects.Count; i++) { int nSubjectId = randomExamSubjects[i].RandomExamSubjectId; // int nItemCount = randomExamSubjects[i].ItemCount; IList <RandomExamStrategy> strategys = strategyBLL.GetRandomExamStrategys(nSubjectId); for (int j = 0; j < strategys.Count; j++) { int nStrategyId = strategys[j].RandomExamStrategyId; int nItemCount = strategys[j].ItemCount; IList <RandomExamItem> itemList = randomItemBLL.GetItemsByStrategyId(nStrategyId, Convert.ToInt32(ViewState["Year"].ToString())); Random ObjRandom = new Random(); Hashtable hashTable = new Hashtable(); Hashtable hashTableCount = new Hashtable(); while (hashTable.Count < nItemCount) { int k = ObjRandom.Next(itemList.Count); hashTableCount[k] = k; int itemID = itemList[k].ItemId; int examItemID = itemList[k].RandomExamItemId; if (!hashTableItemIds.ContainsKey(itemID)) { hashTable[examItemID] = examItemID; hashTableItemIds[itemID] = itemID; htRandomExamItemIds[examItemID] = examItemID; } if (hashTableCount.Count == itemList.Count && hashTable.Count < nItemCount) { SessionSet.PageMessage = "随机考试在设定的取题范围内的试题量不够,请重新设置取题范围!"; return; } } } } string strAll = ""; foreach (int key in htRandomExamItemIds.Keys) { if (strAll == "") { strAll += htRandomExamItemIds[key].ToString(); } else { strAll += "," + htRandomExamItemIds[key].ToString(); } } randomExamResultAnswerBLL.AddExamResultAnswerCurrent(nRandomExamResultPK, strAll); }
protected void ItemAnswerChangeCallBack_Callback(object sender, CallBackEventArgs e) { try { RandomExamResultAnswerCurrentBLL objAnswerCurrentBll = new RandomExamResultAnswerCurrentBLL(); RandomExamResultAnswerCurrent objAnswerCurrent = objAnswerCurrentBll.GetExamResultAnswerCurrent( Convert.ToInt32(ViewState["RandomExamResultID"].ToString()), Convert.ToInt32(e.Parameters[0])); //objAnswerCurrent.RandomExamResultId = Convert.ToInt32(ViewState["RandomExamResultID"].ToString()); //objAnswerCurrent.RandomExamItemId = Convert.ToInt32(e.Parameters[0]); objAnswerCurrent.JudgeStatusId = 0; objAnswerCurrent.JudgeRemark = string.Empty; objAnswerCurrent.ExamTime = 0; if (e.Parameters[3] == "radio") { objAnswerCurrent.Answer = e.Parameters[1]; } else { if (e.Parameters[2] == "true") { objAnswerCurrent.Answer = (objAnswerCurrent.Answer + "|" + e.Parameters[1]).TrimStart('|'); } else { objAnswerCurrent.Answer = (("|" + objAnswerCurrent.Answer + "|").Replace("|" + e.Parameters[1] + "|", "|")).TrimStart( '|').TrimEnd('|'); } } objAnswerCurrentBll.UpdateExamResultAnswerCurrent(objAnswerCurrent); RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetRandomExamResult(Convert.ToInt32(ViewState["RandomExamResultID"].ToString())); objResultCurrent.ExamTime = Convert.ToInt32(ViewState["LastExamTime"].ToString()) + GetSecondBetweenTwoDate(DateTime.Now, DateTime.Parse(ViewState["BeginTime"].ToString())); objResultCurrentBll.UpdateRandomExamResultCurrent(objResultCurrent); //OracleAccess db = new OracleAccess(); //string sqlCommand = "USP_Random_EXAM_ANSWER_Cur_U"; //OracleParameter para1 = new OracleParameter("p_random_exam_result_id", OracleType.Number); //para1.Value = objAnswerCurrent.RandomExamResultId; //OracleParameter para2 = new OracleParameter("p_random_exam_item_id", OracleType.Number); //para2.Value = objAnswerCurrent.RandomExamItemId; //OracleParameter para3 = new OracleParameter("p_answer", OracleType.NVarChar); //para3.Value = objAnswerCurrent.Answer; //OracleParameter para4 = new OracleParameter("p_exam_time", OracleType.Number); //para4.Value = objAnswerCurrent.ExamTime; //OracleParameter para5 = new OracleParameter("p_judge_remark", OracleType.NVarChar); //para5.Value = objAnswerCurrent.JudgeRemark; //IDataParameter[] paras = new IDataParameter[] { para1, para2, para3, para4, para5}; //db.ExecuteNonQueryPro(sqlCommand, paras); } catch { Response.Write("<script>window.parent.parent.location='/RailExamBao/Common/Error.aspx?error=考试出现异常,请重启微机重新登录考试!'</script>"); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack && !Callback1.IsCallback && !ItemAnswerChangeCallBack.IsCallback) { string strExamId = Request.QueryString.Get("id"); ViewState["ExamID"] = strExamId; ViewState["BeginTime"] = DateTime.Now.ToString(); //记录当前考试所在地的OrgID ViewState["OrgID"] = ConfigurationManager.AppSettings["StationID"]; ViewState["EmployeeID"] = Request.QueryString.Get("employeeID"); if (strExamId != null && strExamId != "") { RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(int.Parse(strExamId)); ViewState["Year"] = randomExam.BeginTime.Year.ToString(); HiddenFieldExamTime.Value = DateTime.Now.AddMinutes(randomExam.ExamTime).ToString(); HfExamTime.Value = (randomExam.ExamTime * 60).ToString(); //获取当前考生最新需要做的考试试卷主表记录 RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(ViewState["EmployeeID"].ToString()), Convert.ToInt32(strExamId)); ViewState["LastExamTime"] = objResultCurrent.ExamTime.ToString(); HfExamTime.Value = ((randomExam.ExamTime * 60) - objResultCurrent.ExamTime).ToString(); if (objResultCurrent.ExamTime < 600 && randomExam.ExamTime * 60 > 600) { hfNeed.Value = (600 - objResultCurrent.ExamTime).ToString(); } else { hfNeed.Value = ""; } //获取该考生当前考试次数 RandomExamResultBLL RandomExamResultBLL = new RandomExamResultBLL(); int nowCount; //如果在站段考试为随到随考,需要检测路局异地考试的情况 //if (randomExam.StartMode == PrjPub.START_MODE_NO_CONTROL && !PrjPub.IsServerCenter) //{ // IList<RandomExamResult> RandomExamResultsServer = // RandomExamResultBLL.GetRandomExamResultByExamineeIDFromServer(PrjPub.CurrentStudent.EmployeeID, // int.Parse(strExamId)); // nowCount = RandomExamResultsServer.Count; //} //else //{ // IList<RandomExamResult> RandomExamResults = RandomExamResultBLL.GetRandomExamResultByExamineeID(PrjPub.CurrentStudent.EmployeeID, int.Parse(strExamId)); // nowCount = RandomExamResults.Count; //} //如果是随到随考,需要往回复请求表加入一条记录 //if (randomExam.StartMode == PrjPub.START_MODE_NO_CONTROL) //{ RandomExamApplyBLL objApplyBll = new RandomExamApplyBLL(); RandomExamApply objNowApply = objApplyBll.GetRandomExamApplyByExamResultCurID(objResultCurrent.RandomExamResultId); if (objNowApply.RandomExamApplyID == 0) { RandomExamApply objApply = new RandomExamApply(); objApply.RandomExamID = Convert.ToInt32(strExamId); objApply.RandomExamResultCurID = objResultCurrent.RandomExamResultId; objApply.ApplyStatus = 1; objApply.CodeFlag = true; objApply.IPAddress = Pub.GetRealIP(); objApplyBll.AddRandomExamApply(objApply); } else { objNowApply.IPAddress = Pub.GetRealIP(); objApplyBll.UpdateRandomExamApply(objNowApply); } //} IList <RandomExamResult> RandomExamResults = RandomExamResultBLL.GetRandomExamResultByExamineeID(Convert.ToInt32(ViewState["EmployeeID"].ToString()), int.Parse(strExamId)); nowCount = RandomExamResults.Count; ViewState["NowStartMode"] = randomExam.StartMode.ToString(); HiddenFieldMaxCount.Value = (randomExam.MaxExamTimes - nowCount - 1).ToString(); //更新考试状态 UpdateResultToDB(strExamId); FillPage(strExamId); } } string strAnswer = Request.Form.Get("strreturnAnswer"); if (strAnswer != null && strAnswer != "") { ViewState["EndTime"] = DateTime.Now.ToString(); SaveAnswerToDB(strAnswer); //int examTime = Convert.ToInt32(ViewState["LastExamTime"].ToString()) + //GetSecondBetweenTwoDate(DateTime.Parse(ViewState["EndTime"].ToString()), // DateTime.Parse(ViewState["BeginTime"].ToString())); //ClientScript.RegisterStartupScript(GetType(), "jsHide", "<script>showProgressbar(" + // Request.QueryString.Get("id") + "," + // ViewState["RandomExamResultID"] + "," + // ViewState["EmployeeID"]+ "," + ViewState["OrgID"]+ // ",'" + // ViewState["EndTime"] + "'," + // examTime + ")</script>"); } }
private void SaveAnswerToDB(string strAnswer) { string strId = Request.QueryString.Get("id"); RandomExamItemBLL randomItemBLL = new RandomExamItemBLL(); RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(ViewState["EmployeeID"].ToString()), Convert.ToInt32(strId)); //更新考试成绩表时传入的主键应为站段的成绩表的主键ID objResultCurrent.RandomExamResultId = int.Parse(ViewState["RandomExamResultID"].ToString()); objResultCurrent.RandomExamId = int.Parse(strId); objResultCurrent.AutoScore = 0; objResultCurrent.CurrentDateTime = DateTime.Parse(ViewState["EndTime"].ToString()); objResultCurrent.ExamTime = Convert.ToInt32(ViewState["LastExamTime"].ToString()) + GetSecondBetweenTwoDate(DateTime.Parse(ViewState["EndTime"].ToString()), DateTime.Parse(ViewState["BeginTime"].ToString())); objResultCurrent.EndDateTime = DateTime.Parse(ViewState["EndTime"].ToString()); objResultCurrent.Score = 0; objResultCurrent.OrganizationId = int.Parse(ViewState["OrgID"].ToString()); objResultCurrent.Memo = ""; objResultCurrent.StatusId = 2; objResultCurrent.AutoScore = 0; objResultCurrent.CorrectRate = 0; objResultCurrent.ExamineeId = int.Parse(ViewState["EmployeeID"].ToString()); string[] str1 = strAnswer.Split(new char[] { '$' }); RandomExamResultAnswerCurrentBLL randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL(); //randomExamResultAnswerBLL.DeleteExamResultAnswerCurrent(Convert.ToInt32(ViewState["RandomExamResultID"].ToString())); //IList<RandomExamResultAnswerCurrent> randomExamResultAnswers = new List<RandomExamResultAnswerCurrent>(); int randomExamResultId = int.Parse(ViewState["RandomExamResultID"].ToString()); for (int n = 0; n < str1.Length; n++) { string str2 = str1[n].ToString(); string[] str3 = str2.Split(new char[] { '|' }); string strPaperItemId = str3[0].ToString(); string strTrueAnswer = str2.ToString().Substring(strPaperItemId.Length + 1); RandomExamResultAnswerCurrent randomExamResultAnswer = new RandomExamResultAnswerCurrent(); randomExamResultAnswer.RandomExamResultId = randomExamResultId; randomExamResultAnswer.RandomExamItemId = int.Parse(strPaperItemId); randomExamResultAnswer.JudgeStatusId = 0; randomExamResultAnswer.JudgeRemark = string.Empty; randomExamResultAnswer.ExamTime = 0; randomExamResultAnswer.Answer = strTrueAnswer; //randomExamResultAnswers.Add(randomExamResultAnswer); randomExamResultAnswerBLL.UpdateExamResultAnswerCurrent(randomExamResultAnswer); } try { //将更新答卷信息 //randomExamResultAnswerBLL.AddExamResultAnswerCurrentSave(randomExamResultId, randomExamResultAnswers); //更新实时考试记录 objResultCurrentBll.UpdateRandomExamResultCurrent(objResultCurrent); //获取最后考试成绩 //RandomExamResultCurrent randomExamResultCurrent = objResultCurrentBll.GetRandomExamResult(Convert.ToInt32(ViewState["RandomExamResultID"].ToString())); //decimal nowScore = randomExamResultCurrent.Score; //将实时考试记录(临时表)转存到正式考试成绩表和答卷表 RandomExamResultBLL objResultBll = new RandomExamResultBLL(); //int randomExamResultID = objResultBll.RemoveResultAnswer(Convert.ToInt32(ViewState["RandomExamResultID"].ToString())); //将实时考试记录(临时表)转存到中间考试成绩表和答卷表 int randomExamResultID = objResultBll.RemoveResultAnswerCurrent(Convert.ToInt32(ViewState["RandomExamResultID"].ToString())); //删除登录信息 SystemUserLoginBLL objloginBll = new SystemUserLoginBLL(); objloginBll.DeleteSystemUserLogin(Convert.ToInt32(ViewState["EmployeeID"].ToString())); Response.Write("<script>window.parent.parent.location = '/RailExamBao/Online/Exam/ExamSuccess.aspx?ExamType=1&ExamResultID=" + randomExamResultID + "'</script>"); } catch { SystemUserLoginBLL objloginBll = new SystemUserLoginBLL(); objloginBll.DeleteSystemUserLogin(Convert.ToInt32(ViewState["EmployeeID"].ToString())); string strSql = "update Random_Exam_Result_Current set Exam_Time=Exam_Time-180 where Random_Exam_ID=" + strId + " and Examinee_ID=" + ViewState["EmployeeID"]; OracleAccess db = new OracleAccess(); db.ExecuteNonQuery(strSql); Response.Write("<script>window.parent.parent.location = '/RailExamBao/Common/OtherError.aspx?error=提交试卷失败,请重新进入考试再次进行提交'</script>"); } //如果在站段是随到随考考试,成绩自动上传至路局 //if(ViewState["NowStartMode"].ToString() == PrjPub.START_MODE_NO_CONTROL.ToString() && !PrjPub.IsServerCenter) //{ // objResultBll.RemoveRandomExamResultToServer(Convert.ToInt32(strId), Convert.ToInt32(ConfigurationManager.AppSettings["StationID"])); //} }
private void UpdateResultToDB(string strId) { //获取当前考试的考试结果ID,并且更新考试状态和开考时间 RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent randomExamResult = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(ViewState["EmployeeID"].ToString()), Convert.ToInt32(strId)); if (randomExamResult.RandomExamResultId == 0) { //AddResultToDB(strId); return; } else { ViewState["RandomExamResultID"] = randomExamResult.RandomExamResultId; } if (randomExamResult.StatusId == 0) { randomExamResult.BeginDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.ExamTime = 0; } randomExamResult.CurrentDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.EndDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.OrganizationId = int.Parse(ViewState["OrgID"].ToString()); randomExamResult.Memo = ""; //参加考试将当前考试的标志置为1-正在进行 randomExamResult.StatusId = 1; randomExamResult.ExamineeId = int.Parse(ViewState["EmployeeID"].ToString()); objResultCurrentBll.UpdateRandomExamResultCurrent(randomExamResult); //更新考试机位 string strSql = ""; string mac_dest = ""; try { mac_dest = GetCustomerMac(GetClientIP()); } catch { mac_dest = ""; } if (!string.IsNullOrEmpty(mac_dest)) { strSql = "select * from Computer_Room_Detail" + " where MAC_Address='" + mac_dest + "'"; OracleAccess db = new OracleAccess(); DataSet ds = db.RunSqlDataSet(strSql); if (ds.Tables[0].Rows.Count > 0) { strSql = "update Random_Exam_Result_Detail set Computer_Room_Seat=" + ds.Tables[0].Rows[0]["Computer_Room_Seat"] + " where Random_Exam_ID=" + randomExamResult.RandomExamId + " and Random_Exam_Result_ID=" + randomExamResult.RandomExamResultId + " and Employee_ID=" + randomExamResult.ExamineeId; db.ExecuteNonQuery(strSql); } } }