/// <summary> /// 获取数据集 /// </summary> /// <param name="where"></param> /// <param name="orderBy"></param> /// <returns></returns> public List<Member_CourseContentTestAnswer> GetList(string where, string orderBy) { StringBuilder sql = new StringBuilder(); sql.Append("select * from [dbo].[Member_CourseContentTestAnswer]"); if (!string.IsNullOrEmpty(where)) sql.Append(" where " + where); if (!string.IsNullOrEmpty(orderBy)) sql.Append(" order by " + orderBy); List<Member_CourseContentTestAnswer> list = new List<Member_CourseContentTestAnswer>(); using (IDataReader reader = MSEntLibSqlHelper.ExecuteDataReaderBySql(sql.ToString())) { while (reader.Read()) { Member_CourseContentTestAnswer model = new Member_CourseContentTestAnswer(); ConvertToModel(reader, model); list.Add(model); } } return list; }
/// <summary> /// 新增一条记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public int Add(Member_CourseContentTestAnswer model) { StringBuilder sql = new StringBuilder(); sql.Append("insert into [dbo].[Member_CourseContentTestAnswer] ([AnswerResult],[Question],[Answer],[Credit],[Result],[AccountId],[Delflag],[CreateDate])"); sql.Append(" values (@AnswerResult,@Question,@Answer,@Credit,@Result,@AccountId,@Delflag,@CreateDate)"); sql.Append(" set @Id=@@IDENTITY"); SqlParameter[] cmdParams = new SqlParameter[]{ new SqlParameter("@Id", SqlDbType.Int, 4) { Value = model.Id, Direction = ParameterDirection.Output }, new SqlParameter("@AnswerResult", SqlDbType.Int, 4) { Value = model.AnswerResult }, new SqlParameter("@Question", SqlDbType.Int, 4) { Value = model.Question }, new SqlParameter("@Answer", SqlDbType.VarChar, 100) { Value = model.Answer }, new SqlParameter("@Credit", SqlDbType.Float, 8) { Value = model.Credit }, new SqlParameter("@Result", SqlDbType.Bit, 1) { Value = model.Result }, new SqlParameter("@AccountId", SqlDbType.Int, 4) { Value = model.AccountId }, new SqlParameter("@Delflag", SqlDbType.Bit, 1) { Value = model.Delflag }, new SqlParameter("@CreateDate", SqlDbType.DateTime, 8) { Value = model.CreateDate } }; int result = Convert.ToInt32(MSEntLibSqlHelper.ExecuteNonQueryBySql(sql.ToString(), cmdParams)); model.Id = Convert.ToInt32(cmdParams[0].Value); return result; }
/// <summary> /// 提交答案到用户答案表 /// </summary> /// <param name="listResultOther"></param> /// <param name="iId">总分表的Id</param> /// <returns></returns> private bool SaveMember_CourseContentTestAnswer(List<Member_CourseContentTestAnswerOther> listResultOther, int iId) { var unitTestBll = new Course_UnitTestBLL(); var TestAnswerBll = new Member_CourseContentTestAnswerBLL(); int iAccountId = 0; bool bolRes = false; iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; foreach (var item in listResultOther) { var Model_Answer = new Member_CourseContentTestAnswer(); //获取该题目的正确答案 var Model_Test = unitTestBll.GetModel(item.Id, string.Empty); double dblGetCreTmp = 0; double.TryParse(item.Credits, out dblGetCreTmp); Model_Answer.AnswerResult = iId; Model_Answer.Question = item.Id; Model_Answer.Answer = item.Answer; Model_Answer.Result = Model_Test.QTtype == 4 ? true : Model_Test.Answer == item.Answer;//比对正确答案 若是问答题,直接设置为True Model_Answer.AccountId = iAccountId; Model_Answer.Delflag = false; Model_Answer.CreateDate = DateTime.Now; //将数据插入到学员答题内容表,用户的[结业考试]答案保存 bolRes = TestAnswerBll.Add(Model_Answer); } return bolRes; }
/// <summary> /// 获取[结业考试]结果 /// </summary> /// <param name="listOther"></param> /// <returns></returns> private Member_CourseContentTestAnswerResult GetLearnOnLineExamResult(List<Member_CourseContentTestAnswerOther> listResultOther, out int TrainingId) { var strVerson = string.Empty; int iUnitContent = 0, iClassId = 0, iAccountId = 0, iQuestionCnt = 0, iRightAnswer = 0, iWrongAnswer = 0, iTrainingId = 0; double dblScore = 0, dblTestTotalScore = 0; var bolResult = false; var unitContentBll = new Course_UnitContentBLL(); var Model_ExamResult = new Member_CourseContentTestAnswerResult();//保存总分 var Model_ExamAnswer = new Member_CourseContentTestAnswer(); if (listResultOther.Count > 0) { iTrainingId = listResultOther[0].TrainingId; iClassId = listResultOther[0].ClassId; iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; iUnitContent = listResultOther[0].UnitContentId;//一批题目的UnitContentId相同 } TrainingId = iTrainingId; var List_Course_UnitTest = this.GetExamCourseUnitTest(iTrainingId); iQuestionCnt = List_Course_UnitTest.Count;//总题数 strVerson = List_Course_UnitTest[0].Verson; foreach (var item in listResultOther) { var modelUnitTest = List_Course_UnitTest.Find(x => x.Id == item.Id); if (modelUnitTest.QTtype == 4)//问答题 { iRightAnswer++; } else { if (item.Answer.Trim() == modelUnitTest.Answer.Trim())//答案正确 { iRightAnswer++; dblScore += modelUnitTest.Credit.Value;//用户得分 } else//答案错误 { iWrongAnswer++; } dblTestTotalScore += modelUnitTest.Credit.Value;//所有题目的总分数 } } //获取学员是否过关 var Model_Content = unitContentBll.GetModel(iUnitContent, string.Empty); bolResult = iRightAnswer >= Model_Content.PassLine; Model_ExamResult.Verson = strVerson; Model_ExamResult.UnitContent = iUnitContent; Model_ExamResult.ClassId = iClassId; Model_ExamResult.Score = dblScore; Model_ExamResult.QuestionCnt = iQuestionCnt; Model_ExamResult.RightAnswer = iRightAnswer; Model_ExamResult.WrongAnswer = iWrongAnswer; Model_ExamResult.Result = bolResult; Model_ExamResult.AccountId = iAccountId; Model_ExamResult.Delflag = false; Model_ExamResult.CreateDate = DateTime.Now; return Model_ExamResult; }
/// <summary> /// 获取分页数据集 /// </summary> /// <param name="pageSize"></param> /// <param name="pageIndex"></param> /// <param name="where"></param> /// <param name="orderBy"></param> /// <param name="recordCount"></param> /// <returns></returns> public List<Member_CourseContentTestAnswer> GetList(int pageSize, int pageIndex, string where, string orderBy, out int recordCount) { if (string.IsNullOrEmpty(orderBy)) throw new ArgumentNullException(); StringBuilder sb = new StringBuilder(); sb.Append("select count(1) from [dbo].[Member_CourseContentTestAnswer]"); if (!string.IsNullOrEmpty(where)) sb.Append(" where " + where); recordCount = Convert.ToInt32(MSEntLibSqlHelper.ExecuteScalarBySql(sb.ToString())); int start = (pageIndex - 1) * pageSize + 1; int end = pageIndex * pageSize; StringBuilder sql = new StringBuilder(); sql.Append("select * from (select *,ROW_NUMBER() over (order by " + orderBy + ") as [RowNum] from [dbo].[Member_CourseContentTestAnswer]"); if (!string.IsNullOrEmpty(where)) sql.Append(" where " + where); sql.Append(") as T where [RowNum] between " + start + " and " + end); List<Member_CourseContentTestAnswer> list = new List<Member_CourseContentTestAnswer>(); using (IDataReader reader = MSEntLibSqlHelper.ExecuteDataReaderBySql(sql.ToString())) { while (reader.Read()) { Member_CourseContentTestAnswer model = new Member_CourseContentTestAnswer(); ConvertToModel(reader, model); list.Add(model); } } return list; }
private void ConvertToModel(IDataReader reader, Member_CourseContentTestAnswer model) { if (reader["Id"] != DBNull.Value) model.Id = Convert.ToInt32(reader["Id"]); if (reader["AnswerResult"] != DBNull.Value) model.AnswerResult = Convert.ToInt32(reader["AnswerResult"]); if (reader["Question"] != DBNull.Value) model.Question = Convert.ToInt32(reader["Question"]); if (reader["Answer"] != DBNull.Value) model.Answer = reader["Answer"].ToString(); if (reader["Credit"] != DBNull.Value) model.Credit = Convert.ToDouble(reader["Credit"]); if (reader["Result"] != DBNull.Value) model.Result = Convert.ToBoolean(reader["Result"]); if (reader["AccountId"] != DBNull.Value) model.AccountId = Convert.ToInt32(reader["AccountId"]); if (reader["Delflag"] != DBNull.Value) model.Delflag = Convert.ToBoolean(reader["Delflag"]); if (reader["CreateDate"] != DBNull.Value) model.CreateDate = Convert.ToDateTime(reader["CreateDate"]); }
/// <summary> /// 更新一条记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public int Update(Member_CourseContentTestAnswer model) { StringBuilder sql = new StringBuilder(); sql.Append("update [dbo].[Member_CourseContentTestAnswer] set "); sql.Append("[AnswerResult]=@AnswerResult,[Question]=@Question,[Answer]=@Answer,[Credit]=@Credit,[Result]=@Result,[AccountId]=@AccountId,[Delflag]=@Delflag,[CreateDate]=@CreateDate"); sql.Append(" where [Id]=@Id"); SqlParameter[] cmdParams = new SqlParameter[] { new SqlParameter("@Id", SqlDbType.Int, 4) { Value = model.Id }, new SqlParameter("@AnswerResult", SqlDbType.Int, 4) { Value = model.AnswerResult }, new SqlParameter("@Question", SqlDbType.Int, 4) { Value = model.Question }, new SqlParameter("@Answer", SqlDbType.VarChar, 100) { Value = model.Answer }, new SqlParameter("@Credit", SqlDbType.Float, 8) { Value = model.Credit }, new SqlParameter("@Result", SqlDbType.Bit, 1) { Value = model.Result }, new SqlParameter("@AccountId", SqlDbType.Int, 4) { Value = model.AccountId }, new SqlParameter("@Delflag", SqlDbType.Bit, 1) { Value = model.Delflag }, new SqlParameter("@CreateDate", SqlDbType.DateTime, 8) { Value = model.CreateDate } }; return MSEntLibSqlHelper.ExecuteNonQueryBySql(sql.ToString(), cmdParams); }
/// <summary> /// 取得一条记录 /// </summary> /// <param name="id"></param> /// <param name="where"></param> /// <returns></returns> public Member_CourseContentTestAnswer GetModel(int id, string where) { string sql = "select * from [dbo].[Member_CourseContentTestAnswer] where [Id]=@Id"; if (!string.IsNullOrEmpty(where)) sql += " and " + where; SqlParameter[] cmdParams = new SqlParameter[]{ new SqlParameter("@Id", SqlDbType.Int, 4) { Value = id } }; using (IDataReader reader = MSEntLibSqlHelper.ExecuteDataReaderBySql(sql, cmdParams)) { if (reader.Read()) { Member_CourseContentTestAnswer model = new Member_CourseContentTestAnswer(); ConvertToModel(reader, model); return model; } else { return null; } } }
/// <summary> /// 更新一条记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Update(Member_CourseContentTestAnswer model) { return dal.Update(model) > 0; }
/// <summary> /// 新增一条记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Add(Member_CourseContentTestAnswer model) { return dal.Add(model) > 0; }