public Model_Student_HomeWork_Submit DataRowToModel(DataRow row) { Model_Student_HomeWork_Submit submit = new Model_Student_HomeWork_Submit(); if (row != null) { if (row["Student_HomeWork_Id"] != null) { submit.Student_HomeWork_Id = row["Student_HomeWork_Id"].ToString(); } if ((row["Student_HomeWork_Status"] != null) && (row["Student_HomeWork_Status"].ToString() != "")) { submit.Student_HomeWork_Status = new int?(int.Parse(row["Student_HomeWork_Status"].ToString())); } if ((row["OpenTime"] != null) && (row["OpenTime"].ToString() != "")) { submit.OpenTime = new DateTime?(DateTime.Parse(row["OpenTime"].ToString())); } if (row["StudentIP"] != null) { submit.StudentIP = row["StudentIP"].ToString(); } if ((row["Student_Answer_Time"] != null) && (row["Student_Answer_Time"].ToString() != "")) { submit.Student_Answer_Time = new DateTime?(DateTime.Parse(row["Student_Answer_Time"].ToString())); } } return(submit); }
public bool Add(Model_Student_HomeWork_Submit model) { StringBuilder builder = new StringBuilder(); builder.Append("insert into Student_HomeWork_Submit("); builder.Append("Student_HomeWork_Id,Student_HomeWork_Status,OpenTime,StudentIP,Student_Answer_Time)"); builder.Append(" values ("); builder.Append("@Student_HomeWork_Id,@Student_HomeWork_Status,@OpenTime,@StudentIP,@Student_Answer_Time)"); SqlParameter[] cmdParms = new SqlParameter[] { new SqlParameter("@Student_HomeWork_Id", SqlDbType.Char, 0x24), new SqlParameter("@Student_HomeWork_Status", SqlDbType.Int, 4), new SqlParameter("@OpenTime", SqlDbType.DateTime), new SqlParameter("@StudentIP", SqlDbType.Char, 0x24), new SqlParameter("@Student_Answer_Time", SqlDbType.DateTime) }; cmdParms[0].Value = model.Student_HomeWork_Id; cmdParms[1].Value = model.Student_HomeWork_Status; cmdParms[2].Value = model.OpenTime; cmdParms[3].Value = model.StudentIP; cmdParms[4].Value = model.Student_Answer_Time; return(DbHelperSQL.ExecuteSql(builder.ToString(), cmdParms) > 0); }
public List <Model_Student_HomeWork_Submit> DataTableToList(DataTable dt) { List <Model_Student_HomeWork_Submit> list = new List <Model_Student_HomeWork_Submit>(); int count = dt.Rows.Count; if (count > 0) { for (int i = 0; i < count; i++) { Model_Student_HomeWork_Submit item = this.dal.DataRowToModel(dt.Rows[i]); if (item != null) { list.Add(item); } } } return(list); }
public bool Update(Model_Student_HomeWork_Submit model) { StringBuilder builder = new StringBuilder(); builder.Append("update Student_HomeWork_Submit set "); builder.Append("Student_HomeWork_Status=@Student_HomeWork_Status,"); builder.Append("OpenTime=@OpenTime,"); builder.Append("StudentIP=@StudentIP,"); builder.Append("Student_Answer_Time=@Student_Answer_Time"); builder.Append(" where Student_HomeWork_Id=@Student_HomeWork_Id "); SqlParameter[] cmdParms = new SqlParameter[] { new SqlParameter("@Student_HomeWork_Status", SqlDbType.Int, 4), new SqlParameter("@OpenTime", SqlDbType.DateTime), new SqlParameter("@StudentIP", SqlDbType.Char, 0x24), new SqlParameter("@Student_Answer_Time", SqlDbType.DateTime), new SqlParameter("@Student_HomeWork_Id", SqlDbType.Char, 0x24) }; cmdParms[0].Value = model.Student_HomeWork_Status; cmdParms[1].Value = model.OpenTime; cmdParms[2].Value = model.StudentIP; cmdParms[3].Value = model.Student_Answer_Time; cmdParms[4].Value = model.Student_HomeWork_Id; return(DbHelperSQL.ExecuteSql(builder.ToString(), cmdParms) > 0); }
public int StudentAnswerSubmit(Model_Student_HomeWork_Submit modelSHWSubmit, List <Model_Student_HomeWorkAnswer> listModel) { new Dictionary <string, SqlParameter[]>(); StringBuilder builder = new StringBuilder(); builder.Append("update Student_HomeWork_Submit set "); builder.AppendFormat("Student_HomeWork_Status='{0}'", modelSHWSubmit.Student_HomeWork_Status); builder.AppendFormat(" where Student_HomeWork_Id='{0}'; ", modelSHWSubmit.Student_HomeWork_Id); foreach (Model_Student_HomeWorkAnswer answer in listModel) { builder.Append("insert into Student_HomeWorkAnswer("); builder.Append("Student_HomeWorkAnswer_Id,Student_HomeWork_Id,TestQuestions_Score_ID,TestQuestions_Id,Student_Id,HomeWork_Id,TestQuestions_Num,TestQuestions_Detail_OrderNum,Student_Answer,Student_Score,Student_Answer_Status,CreateTime,TestQuestions_NumStr,Comment,isRead)"); builder.AppendFormat(" values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}');", new object[] { answer.Student_HomeWorkAnswer_Id, answer.Student_HomeWork_Id, answer.TestQuestions_Score_ID, answer.TestQuestions_Id, answer.Student_Id, answer.HomeWork_Id, answer.TestQuestions_Num, answer.TestQuestions_Detail_OrderNum, answer.Student_Answer, answer.Student_Score, answer.Student_Answer_Status, answer.CreateTime, answer.TestQuestions_NumStr, answer.Comment, answer.isRead }); } builder.AppendFormat("update t set t.TestQuestions_NumStr=tq.topicNumber\r\nfrom Student_HomeWorkAnswer t,TestQuestions tq \r\nwhere t.TestQuestions_NumStr='' and t.Student_HomeWork_Id='{0}' and t.TestQuestions_Id=tq.TestQuestions_Id;", modelSHWSubmit.Student_HomeWork_Id); builder.AppendFormat("if(\r\nselect count(*) from Student_HomeWorkAnswer where Student_HomeWork_Id='{0}' and isRead=0)=0 begin update Student_HomeWork_Correct set Student_HomeWork_CorrectStatus='1',CorrectTime=getdate() where Student_HomeWork_Id='{0}';insert into Student_WrongHomeWork\r\nselect NEWID(),t.Student_HomeWorkAnswer_Id,getdate() from Student_HomeWorkAnswer t inner join TestQuestions_Score tq on tq.TestQuestions_Score_ID=t.TestQuestions_Score_ID\r\nwhere tq.TestQuestions_Score!=-1 and t.Student_Answer_Status<>'right' and t.Student_HomeWork_Id='{0}'; end; ", modelSHWSubmit.Student_HomeWork_Id); int num = DbHelperSQL.ExecuteSql(builder.ToString()); if (num > 0) { return(num); } return(0); }
public bool Add(Model_Student_HomeWork_Submit model) { return(this.dal.Add(model)); }
public bool Update(Model_Student_HomeWork_Submit model) { return(this.dal.Update(model)); }
private bool LoadData() { bool flag = false; try { Stream resStream = HttpContext.Current.Request.InputStream; StreamReader sr = new StreamReader(resStream, System.Text.Encoding.UTF8); string testJsion = sr.ReadToEnd(); string resInfo = testJsion; tchAssignModel modelAssign = JsonConvert.DeserializeObject <tchAssignModel>(resInfo); Model_HomeWork model = new Model_HomeWork(); model.SubjectId = modelAssign.SubjectId; #region 布置作业表 model.HomeWork_Id = modelAssign.HomeWork_Id; model.ResourceToResourceFolder_Id = modelAssign.ResourceToResourceFolder_Id; model.HomeWork_Name = modelAssign.HomeWork_Name; model.HomeWork_AssignTeacher = modelAssign.HomeWork_AssignTeacher; model.BeginTime = modelAssign.BeginTime; model.StopTime = modelAssign.StopTime; model.IsHide = modelAssign.IsHide; model.HomeWork_Status = modelAssign.HomeWork_Status; model.CreateTime = modelAssign.CreateTime; model.UserGroup_Id = modelAssign.UserGroup_Id; model.isTimeLimt = modelAssign.isTimeLimt; model.isTimeLength = modelAssign.isTimeLength; model.SubjectId = modelAssign.SubjectId; model.IsShowAnswer = modelAssign.IsShowAnswer; #endregion #region 学生作业表 List <Model_Student_HomeWork> listSHomwWork = new List <Model_Student_HomeWork>(); List <Model_Student_HomeWork_Submit> listSHomwWorkSubmit = new List <Model_Student_HomeWork_Submit>(); List <Model_Student_HomeWork_Correct> listSHomwWorkCorrect = new List <Model_Student_HomeWork_Correct>(); string strStudent = modelAssign.stuInfo; string[] strArrStudent = strStudent.Split(','); for (int i = 0; i < strArrStudent.Length; i++) { string ShwGuid = Guid.NewGuid().ToString(); Model_Student_HomeWork modelSHomeWork = new Model_Student_HomeWork(); modelSHomeWork.Student_HomeWork_Id = ShwGuid; modelSHomeWork.HomeWork_Id = modelAssign.HomeWork_Id; modelSHomeWork.Student_Id = strArrStudent[i]; modelSHomeWork.CreateTime = modelAssign.CreateTime; listSHomwWork.Add(modelSHomeWork); #region 作业提交状态 Model_Student_HomeWork_Submit modelSHomeWorkSubmit = new Model_Student_HomeWork_Submit(); modelSHomeWorkSubmit.Student_HomeWork_Id = ShwGuid; modelSHomeWorkSubmit.Student_HomeWork_Status = 0; listSHomwWorkSubmit.Add(modelSHomeWorkSubmit); #endregion #region 作业批改状态 Model_Student_HomeWork_Correct modelSHomeWorkCorrect = new Model_Student_HomeWork_Correct(); modelSHomeWorkCorrect.Student_HomeWork_Id = ShwGuid; modelSHomeWorkCorrect.Student_HomeWork_CorrectStatus = 0; listSHomwWorkCorrect.Add(modelSHomeWorkCorrect); #endregion } #endregion #region 统计帮助表 DataTable dtHWDetail = Rc.Common.DBUtility.DbHelperSQL.Query("select * from VW_ClassGradeSchool where ClassId='" + modelAssign.UserGroup_Id + "' and GradeId is not null and SchoolId is not null ").Tables[0]; Model_StatsHelper modelSH_HW = new Model_StatsHelper(); modelSH_HW.StatsHelper_Id = Guid.NewGuid().ToString(); modelSH_HW.ResourceToResourceFolder_Id = model.ResourceToResourceFolder_Id; modelSH_HW.Homework_Id = model.HomeWork_Id; modelSH_HW.Exec_Status = "0"; modelSH_HW.SType = "1"; modelSH_HW.CreateUser = modelAssign.HomeWork_AssignTeacher; modelSH_HW.SchoolId = dtHWDetail.Rows[0]["SchoolId"].ToString(); modelSH_HW.GradeId = dtHWDetail.Rows[0]["GradeId"].ToString(); modelSH_HW.ClassId = modelAssign.UserGroup_Id; modelSH_HW.TeacherId = modelAssign.HomeWork_AssignTeacher; modelSH_HW.HW_CreateTime = modelAssign.CreateTime; #endregion Rc.Common.SystemLog.SystemLog.AddLogFromBS(modelAssign.HomeWork_AssignTeacher, "", "布置作业(学校服务器):4开始写入数据123"); if (new BLL_HomeWork().AddHomework(model, listSHomwWork, listSHomwWorkSubmit, listSHomwWorkCorrect, modelSH_HW)) { Rc.Common.SystemLog.SystemLog.AddLogFromBS(modelAssign.HomeWork_AssignTeacher, "", "布置作业(学校服务器):4结束写入数据"); if (GenerateTestPaperFileForStudent(modelAssign.HomeWork_AssignTeacher, modelAssign.HomeWork_Id)) { flag = true; } else { //RevokeHW 生成学生作业文件失败 撤销作业 new BLL_HomeWork().RevokeHW(model.HomeWork_Id); Rc.Common.SystemLog.SystemLog.AddLogErrorFromBS(modelAssign.HomeWork_AssignTeacher, "", "布置作业失败(学校服务器):生成学生作业文件失败"); } } else { //RevokeHW 写入数据失败 撤销作业 new BLL_HomeWork().RevokeHW(model.HomeWork_Id); Rc.Common.SystemLog.SystemLog.AddLogErrorFromBS(modelAssign.HomeWork_AssignTeacher, "", "布置作业失败(学校服务器):写入数据失败"); } } catch (Exception ex) { Rc.Common.SystemLog.SystemLog.AddLogErrorFromBS("", "", "布置作业失败(学校服务器):" + ex.Message.ToString()); } return(flag); }
public int StudentAnswerSubmit(Model_Student_HomeWork_Submit modelSHWSubmit, List <Model_Student_HomeWorkAnswer> listModel) { return(this.dal.StudentAnswerSubmit(modelSHWSubmit, listModel)); }
public void SubmitStudentAnswer() { string StrSql = string.Empty; if (string.IsNullOrEmpty(SchoolId)) { StrSql = @"select hw.HomeWork_Id,hw.CreateTime,shw.Student_HomeWork_Id,shw.HomeWork_Id,shw.Student_Id,shw.CreateTime,shwSubmit.Student_HomeWork_Status,shwSubmit.OpenTime,shwSubmit.StudentIP,shwSubmit.Student_Answer_Time from Student_HomeWork shw inner join Student_HomeWork_Submit shwSubmit on shwSubmit.Student_HomeWork_Id=shw.Student_HomeWork_Id and shwSubmit.Student_HomeWork_Status='2' inner join HomeWork hw on hw.HomeWork_Id=shw.HomeWork_Id order by hw.CreateTime"; } else { StrSql = string.Format(@"select hw.HomeWork_Id,hw.CreateTime,shw.Student_HomeWork_Id,shw.HomeWork_Id,shw.Student_Id,shw.CreateTime,shwSubmit.Student_HomeWork_Status,shwSubmit.OpenTime,shwSubmit.StudentIP,shwSubmit.Student_Answer_Time from Student_HomeWork shw inner join Student_HomeWork_Submit shwSubmit on shwSubmit.Student_HomeWork_Id=shw.Student_HomeWork_Id and shwSubmit.Student_HomeWork_Status='2' inner join HomeWork hw on hw.HomeWork_Id=shw.HomeWork_Id where shw.Student_Id in(select UserId from VW_UserOnClassGradeSchool vw where vw.SchoolId='{0}') order by hw.CreateTime", SchoolId); } DataTable dtShw = Rc.Common.DBUtility.DbHelperSQL.Query(StrSql).Tables[0]; if (dtShw.Rows.Count == 0) { #region 记录执行结束信息并保存数据 model_FileSyncExecRecordDetail.Detail_TimeEnd = DateTime.Now; model_FileSyncExecRecordDetail.Detail_Status = "1"; model_FileSyncExecRecordDetail.Detail_Remark = "执行完成.没有待执行数据"; bll_FileSyncExecRecordDetail.Update(model_FileSyncExecRecordDetail); #endregion return; } try { #region 自动提交学生答案 int sucNum = 0; int failNum = 0; string resInfo = string.Empty; foreach (DataRow itemShw in dtShw.Rows) { try { #region 提交单份学生作业 string savePath = string.Empty; Model_HomeWork modelHW = new BLL_HomeWork().GetModel(itemShw["HomeWork_Id"].ToString()); string homeWorkId = modelHW.HomeWork_Id; string rtrfId = modelHW.ResourceToResourceFolder_Id; string resourceId = itemShw["Student_HomeWork_Id"].ToString(); //学生作业ID string userId = itemShw["Student_Id"].ToString(); //学生ID Model_ResourceToResourceFolder modelRTRFolder = new BLL_ResourceToResourceFolder().GetModel(rtrfId); string filePath = pfunction.ConvertToLongDateTime(itemShw["CreateTime"].ToString(), "yyyy-MM-dd") + "\\" + itemShw["HomeWork_Id"] + "\\" + itemShw["Student_HomeWork_Id"].ToString() + ".txt"; if (File.Exists(Server.MapPath(uploadAnswerPath) + filePath)) { resInfo = File.ReadAllText(Server.MapPath(uploadAnswerPath) + filePath); Rc.Interface.testPaperAnswerSubmitModel resModel = Newtonsoft.Json.JsonConvert.DeserializeObject <Rc.Interface.testPaperAnswerSubmitModel>(resInfo); Rc.Common.SystemLog.SystemLog.AddLogFromBS("", resourceId, string.Format("开始自动提交学生作业|操作人{0}|学生作业Id{1}|方法{2}", userId, resourceId, "testpaperanswersubmit")); #region 学生作业表 Model_Student_HomeWork_Submit modelSHWSubmit = new Model_Student_HomeWork_Submit(); modelSHWSubmit = new BLL_Student_HomeWork_Submit().GetModel(itemShw["Student_HomeWork_Id"].ToString()); modelSHWSubmit.Student_HomeWork_Status = 1; #endregion #region 学生作业答案表 if (modelRTRFolder.Resource_Class == Rc.Common.Config.Resource_ClassConst.云资源) { savePath = string.Format("{0}\\{1}\\{2}\\{3}\\{4}\\" , pfunction.ToShortDate(modelHW.CreateTime.ToString())//作业布置时间 , modelRTRFolder.ParticularYear, modelRTRFolder.GradeTerm , modelRTRFolder.Resource_Version, modelRTRFolder.Subject); } if (modelRTRFolder.Resource_Class == Rc.Common.Config.Resource_ClassConst.自有资源) { savePath = string.Format("{0}\\" , pfunction.ToShortDate(modelHW.CreateTime.ToString()));//作业布置时间); } //获取这个试卷的所有试题分值 string strSqlScore = string.Empty; strSqlScore = string.Format(@"select [TestQuestions_Score_ID],TestQuestions_ID ,TestQuestions_Score,TestQuestions_OrderNum,TestType FROM TestQuestions_Score where ResourceToResourceFolder_Id='{0}' ", rtrfId); DataTable dtTQ_Score = Rc.Common.DBUtility.DbHelperSQL.Query(strSqlScore).Tables[0]; List <Model_Student_HomeWorkAnswer> listSHWA = new List <Model_Student_HomeWorkAnswer>(); List <Rc.Interface.TestPaperAnswerModel> listTestPaperAnswerModel = resModel.answerJson; //普通题型 List <Rc.Interface.TestPaperAnswerModelBig> TestPaperAnswerModelBig = resModel.listBig; //综合题型 #region 普通题型 list int num = 0; if (listTestPaperAnswerModel != null) { foreach (var item in listTestPaperAnswerModel) { if (item != null && item.list != null) { num++; int detailNum = 0; foreach (var itemSub in item.list) { if (itemSub != null) { detailNum++; DataRow[] drTQ_Score = dtTQ_Score.Select(string.Format(" TestQuestions_ID='{0}' and TestQuestions_OrderNum={1} ", item.Testid, detailNum)); if (drTQ_Score != null && drTQ_Score.Length > 0) { #region 学生答题表 Model_Student_HomeWorkAnswer modelSHWA = new Model_Student_HomeWorkAnswer(); modelSHWA.TestQuestions_Id = item.Testid; string student_HomeWorkAnswer_Id = Guid.NewGuid().ToString(); modelSHWA.TestQuestions_Score_ID = drTQ_Score[0]["TestQuestions_Score_ID"].ToString(); modelSHWA.Student_HomeWorkAnswer_Id = student_HomeWorkAnswer_Id; modelSHWA.Student_HomeWork_Id = resourceId; modelSHWA.Student_Id = userId; modelSHWA.HomeWork_Id = homeWorkId; modelSHWA.TestQuestions_Num = num; modelSHWA.TestQuestions_Detail_OrderNum = detailNum; if (itemSub.isHTML == "F")//是否以HTML提交 F: 文本提交; T: HTML提交(选择题,文本提交, 其余均为HTML提交) { modelSHWA.Student_Answer = itemSub.answerChooses; } else if (itemSub.isHTML == "T")//HTML提交 { Model_TestQuestions modelTQ = new BLL_TestQuestions().GetModel(item.Testid); if (modelTQ.TestQuestions_Type == "truefalse")//判断题答案保存到数据库 { modelSHWA.Student_Answer = itemSub.answerHTML; } else { #region 学生答案 保存文件 if (!String.IsNullOrEmpty(itemSub.answerHTML)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerHTML, true); } if (!String.IsNullOrEmpty(itemSub.answerImageBase64)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.i.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerImageBase64, true); } if (!String.IsNullOrEmpty(itemSub.answerDocBase64)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.d.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerDocBase64, true); } #endregion } } else //默认存HTML { #region 学生答案 保存文件 if (!String.IsNullOrEmpty(itemSub.answerHTML)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerHTML, true); } if (!String.IsNullOrEmpty(itemSub.answerImageBase64)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.i.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerImageBase64, true); } if (!String.IsNullOrEmpty(itemSub.answerDocBase64)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.d.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerDocBase64, true); } #endregion } //写入客户端的判卷 modelSHWA.Student_Score = 0;//学生得分默认值(NULL的话统计的时候会出现数据不正确) if (itemSub.isRight == "true") { modelSHWA.Student_Answer_Status = "right"; decimal temp_decimal = 0; decimal.TryParse(drTQ_Score[0]["TestQuestions_Score"].ToString(), out temp_decimal); modelSHWA.Student_Score = temp_decimal; modelSHWA.isRead = 1; } else if (itemSub.isRight == "false") { modelSHWA.Student_Answer_Status = "wrong"; modelSHWA.isRead = 1; } else { modelSHWA.Student_Answer_Status = "unknown"; modelSHWA.isRead = 0; } modelSHWA.CreateTime = DateTime.Now; string strTestQuestions_NumStr = item.topicNumber.Filter(); if (!string.IsNullOrEmpty(strTestQuestions_NumStr)) { if (strTestQuestions_NumStr.Length >= 10) { strTestQuestions_NumStr = strTestQuestions_NumStr.Substring(0, 10); } } modelSHWA.TestQuestions_NumStr = strTestQuestions_NumStr;//item.topicNumber listSHWA.Add(modelSHWA); #endregion } } } } } } #endregion #region 综合题型 listBig if (TestPaperAnswerModelBig != null) { num = 0; foreach (var itemBig in TestPaperAnswerModelBig) { if (itemBig != null && itemBig.list != null) { foreach (var item in itemBig.list) { if (item != null && item.list != null) { num++; int detailNum = 0; foreach (var itemSub in item.list) { if (itemSub != null) { detailNum++; DataRow[] drTQ_Score = dtTQ_Score.Select(string.Format(" TestQuestions_ID='{0}' and TestQuestions_OrderNum={1} ", item.Testid, detailNum)); if (drTQ_Score != null && drTQ_Score.Length > 0) { #region 学生答题表 Model_Student_HomeWorkAnswer modelSHWA = new Model_Student_HomeWorkAnswer(); modelSHWA.TestQuestions_Id = item.Testid; string student_HomeWorkAnswer_Id = Guid.NewGuid().ToString(); modelSHWA.TestQuestions_Score_ID = drTQ_Score[0]["TestQuestions_Score_ID"].ToString(); modelSHWA.Student_HomeWorkAnswer_Id = student_HomeWorkAnswer_Id; modelSHWA.Student_HomeWork_Id = resourceId; modelSHWA.Student_Id = userId; modelSHWA.HomeWork_Id = homeWorkId; modelSHWA.TestQuestions_Num = num; modelSHWA.TestQuestions_Detail_OrderNum = detailNum; //if (modelRTRFolder.Resource_Class == Rc.Common.Config.Resource_ClassConst.云资源) //{ // savePath = string.Format("{0}\\{1}\\{2}\\{3}\\{4}\\" // , pfunction.ToShortDate(modelHW.CreateTime.ToString())//作业布置时间 // , modelRTRFolder.ParticularYear, modelRTRFolder.GradeTerm // , modelRTRFolder.Resource_Version, modelRTRFolder.Subject); //} //if (modelRTRFolder.Resource_Class == Rc.Common.Config.Resource_ClassConst.自有资源) //{ // savePath = string.Format("{0}\\" // , pfunction.ToShortDate(modelHW.CreateTime.ToString()));//作业布置时间); //} if (itemSub.isHTML == "F")//是否以HTML提交 F: 文本提交; T: HTML提交(选择题,文本提交, 其余均为HTML提交) { modelSHWA.Student_Answer = itemSub.answerChooses; } else if (itemSub.isHTML == "T")//HTML提交 { Model_TestQuestions modelTQ = new BLL_TestQuestions().GetModel(item.Testid); if (modelTQ.TestQuestions_Type == "truefalse")//判断题答案保存到数据库 { modelSHWA.Student_Answer = itemSub.answerHTML; } else { #region 学生答案 保存文件 if (!String.IsNullOrEmpty(itemSub.answerHTML)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerHTML, true); } if (!String.IsNullOrEmpty(itemSub.answerImageBase64)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.i.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerImageBase64, true); } if (!String.IsNullOrEmpty(itemSub.answerDocBase64)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.d.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerDocBase64, true); } #endregion } } else //默认存HTML { #region 学生答案 保存文件 if (!String.IsNullOrEmpty(itemSub.answerHTML)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerHTML, true); } if (!String.IsNullOrEmpty(itemSub.answerImageBase64)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.i.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerImageBase64, true); } if (!String.IsNullOrEmpty(itemSub.answerDocBase64)) { pfunction.WriteToFile(string.Format("{0}studentAnswer\\{1}{2}.d.txt", uploadPath, savePath, student_HomeWorkAnswer_Id), itemSub.answerDocBase64, true); } #endregion } //写入客户端的判卷 modelSHWA.Student_Score = 0;//学生得分默认值(NULL的话统计的时候会出现数据不正确) if (itemSub.isRight == "true") { modelSHWA.Student_Answer_Status = "right"; decimal temp_decimal = 0; decimal.TryParse(drTQ_Score[0]["TestQuestions_Score"].ToString(), out temp_decimal); modelSHWA.Student_Score = temp_decimal; modelSHWA.isRead = 1; } else if (itemSub.isRight == "false") { modelSHWA.Student_Answer_Status = "wrong"; modelSHWA.isRead = 1; } else { modelSHWA.Student_Answer_Status = "unknown"; modelSHWA.isRead = 0; } modelSHWA.CreateTime = DateTime.Now; string strTestQuestions_NumStr = item.topicNumber.Filter(); if (!string.IsNullOrEmpty(strTestQuestions_NumStr)) { if (strTestQuestions_NumStr.Length >= 10) { strTestQuestions_NumStr = strTestQuestions_NumStr.Substring(0, 10); } } modelSHWA.TestQuestions_NumStr = strTestQuestions_NumStr;//item.topicNumber listSHWA.Add(modelSHWA); #endregion } } } } } } } } #endregion #endregion if (new BLL_Student_HomeWorkAnswer().StudentAnswerSubmit(modelSHWSubmit, listSHWA) > 0) { sucNum++; #region 保存学生答题JSON串 //重置answerHTML为空,保存分值 List <Model_Student_HomeWorkAnswer> listStuScore = new BLL_Student_HomeWorkAnswer().GetModelList("Student_HomeWork_Id='" + resourceId + "'"); #region 普通题型 list if (resModel.answerJson != null) { foreach (var item in resModel.answerJson) { if (item != null && item.list != null) { int sNum = 0; foreach (var itemTQ_S in item.list) { if (itemTQ_S != null) { itemTQ_S.answerHTML = ""; sNum++; List <Model_Student_HomeWorkAnswer> listStuScoreSub = listStuScore.Where(o => o.TestQuestions_Id == item.Testid && o.TestQuestions_Detail_OrderNum == sNum).ToList(); if (listStuScoreSub.Count > 0) { itemTQ_S.studentScore = listStuScoreSub[0].Student_Score.ToString(); } } } } } } #endregion #region 综合题型 listBig if (resModel.listBig != null) { foreach (var item in resModel.listBig) { if (item != null && item.list != null) { foreach (var itemSub in item.list) { if (itemSub != null && itemSub.list != null) { int sNum = 0; foreach (var itemTQ_S in itemSub.list) { if (itemTQ_S != null) { itemTQ_S.answerHTML = ""; sNum++; List <Model_Student_HomeWorkAnswer> listStuScoreSub = listStuScore.Where(o => o.TestQuestions_Id == itemSub.Testid && o.TestQuestions_Detail_OrderNum == sNum).ToList(); if (listStuScoreSub.Count > 0) { itemTQ_S.studentScore = listStuScoreSub[0].Student_Score.ToString(); } } } } } } } } #endregion string savePathForTch = string.Format("{0}\\", pfunction.ToShortDate(modelHW.CreateTime.ToString())); savePathForTch = "{0}{1}\\" + savePathForTch + "{2}\\{2}.txt"; object stuAnswer = new { list = resModel.answerJson, listBig = resModel.listBig }; pfunction.WriteToFile(string.Format(savePathForTch, uploadPath, "studentAnswerForMarking", resourceId) , Newtonsoft.Json.JsonConvert.SerializeObject(stuAnswer), true); #endregion Rc.Common.SystemLog.SystemLog.AddLogFromBS("", resourceId, string.Format("成功-自动提交学生作业|操作人{0}|学生作业Id{1}|方法{2}", userId, resourceId, "testpaperanswersubmit")); } else { failNum++; Rc.Common.SystemLog.SystemLog.AddLogFromBS("", resourceId, string.Format("失败-自动提交学生作业|操作人{0}|学生作业Id{1}|方法{2}", userId, resourceId, "testpaperanswersubmit")); } } #endregion } catch (Exception ex) { failNum++; Rc.Common.SystemLog.SystemLog.AddLogFromBS("", itemShw["Student_HomeWork_Id"].ToString() , string.Format("失败-自动提交学生作业|操作人{0}|学生作业Id{1}|方法{2}。错误:{3}" , itemShw["Student_Id"].ToString() , itemShw["Student_HomeWork_Id"].ToString() , "testpaperanswersubmit" , ex.Message.ToString().Filter() ) ); } Rc.Common.SystemLog.SystemLog.AddLogFromBS("", itemShw["Student_HomeWork_Id"].ToString(), string.Format("完成-自动提交学生作业|操作人{0}|学生作业Id{1}|方法{2}", itemShw["Student_Id"].ToString(), itemShw["Student_HomeWork_Id"].ToString(), "testpaperanswersubmit")); } #endregion #region 记录执行结束信息并保存数据 model_FileSyncExecRecordDetail.Detail_TimeEnd = DateTime.Now; model_FileSyncExecRecordDetail.Detail_Status = "1"; model_FileSyncExecRecordDetail.Detail_Remark = string.Format("执行完成.数据总数{0},成功数{1},失败数{2}", dtShw.Rows.Count, sucNum, failNum); bll_FileSyncExecRecordDetail.Update(model_FileSyncExecRecordDetail); #endregion } catch (Exception ex) { model_FileSyncExecRecordDetail.Detail_TimeEnd = DateTime.Now; model_FileSyncExecRecordDetail.Detail_Status = "2"; model_FileSyncExecRecordDetail.Detail_Remark = "执行失败:" + ex.Message.ToString(); bll_FileSyncExecRecordDetail.Update(model_FileSyncExecRecordDetail); } }
protected void btnSubmit_Click(object sender, EventArgs e) { try { Model_HomeWork model = new Model_HomeWork(); BLL_HomeWork bll = new BLL_HomeWork(); #region 布置作业表 string guid = HomeWork_Id; model = bll.GetModel(guid); model.StopTime = Convert.ToDateTime(txtStopTime.Text); #endregion #region 学生作业表 List <Model_Student_HomeWork> listSHomwWork = new List <Model_Student_HomeWork>(); List <Model_Student_HomeWork_Submit> listSHomwWorkSubmit = new List <Model_Student_HomeWork_Submit>(); List <Model_Student_HomeWork_Correct> listSHomwWorkCorrect = new List <Model_Student_HomeWork_Correct>(); string strStudent = Rc.Cloud.Web.Common.pfunction.CheckImp(hidStudentId.Value); strStudent = strStudent.TrimEnd(','); string[] strArrStudent = strStudent.Split(','); for (int i = 0; i < strArrStudent.Length; i++) { string ShwGuid = Guid.NewGuid().ToString(); Model_Student_HomeWork modelSHomeWork = new Model_Student_HomeWork(); modelSHomeWork.Student_HomeWork_Id = ShwGuid; modelSHomeWork.HomeWork_Id = guid; modelSHomeWork.Student_Id = strArrStudent[i]; modelSHomeWork.CreateTime = DateTime.Now; listSHomwWork.Add(modelSHomeWork); #region 作业提交状态 Model_Student_HomeWork_Submit modelSHomeWorkSubmit = new Model_Student_HomeWork_Submit(); modelSHomeWorkSubmit.Student_HomeWork_Id = ShwGuid; modelSHomeWorkSubmit.Student_HomeWork_Status = 0; listSHomwWorkSubmit.Add(modelSHomeWorkSubmit); #endregion #region 作业批改状态 Model_Student_HomeWork_Correct modelSHomeWorkCorrect = new Model_Student_HomeWork_Correct(); modelSHomeWorkCorrect.Student_HomeWork_Id = ShwGuid; modelSHomeWorkCorrect.Student_HomeWork_CorrectStatus = 0; listSHomwWorkCorrect.Add(modelSHomeWorkCorrect); #endregion } #endregion #region 统计帮助表 DataTable dtHWDetail = bll.GetHWDetail(HomeWork_Id).Tables[0]; Model_StatsHelper modelSH_HW = new Model_StatsHelper(); modelSH_HW.ResourceToResourceFolder_Id = model.ResourceToResourceFolder_Id; modelSH_HW.Homework_Id = model.HomeWork_Id; modelSH_HW.SchoolId = dtHWDetail.Rows[0]["SchoolId"].ToString(); modelSH_HW.GradeId = dtHWDetail.Rows[0]["GradeId"].ToString(); #endregion if (bll.UpdateHomework(model, listSHomwWork, listSHomwWorkSubmit, listSHomwWorkCorrect, modelSH_HW)) { string strJ = "layer.msg('布置作业成功',{time:1000,icon:1},function(){"; if (Request.QueryString["tp"] != "1") { strJ += "window.parent.loadData();"; } else { strJ += "window.parent.location.reload();"; } strJ += "parent.layer.close(parent.layer.getFrameIndex(window.name));});"; ClientScript.RegisterStartupScript(this.GetType(), "temp", strJ, true); Rc.Common.SystemLog.SystemLog.AddLogFromBS(FloginUser.UserId, "", "布置作业成功"); } else { ClientScript.RegisterStartupScript(this.GetType(), "temp", "layer.msg('布置作业失败',{time:2000,icon:2});", true); Rc.Common.SystemLog.SystemLog.AddLogErrorFromBS(FloginUser.UserId, "", "布置作业失败"); } } catch (Exception ex) { ClientScript.RegisterStartupScript(this.GetType(), "temp", "layer.msg('布置作业失败',{time:2000,icon:2});", true); Rc.Common.SystemLog.SystemLog.AddLogErrorFromBS(FloginUser.UserId, "", "布置作业失败:" + ex.Message.ToString()); } }