public async Task <HttpResponseMessage> GetResultDetail(int userID, string moduleCode, string moduleStatus, int termDetailID, int assignmentSubmissionID)
        {
            try
            {
                ResultDAL        dal  = new ResultDAL();
                ResultDetailInfo data = await dal.GetResultDetail(userID, moduleCode, moduleStatus, termDetailID, assignmentSubmissionID);

                if (data != null)
                {
                    return(Request.CreateResponse <ResultDetailInfo>(HttpStatusCode.OK, data));
                }
                else
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.NotFound, Constants.ErrorNotFound));
                }
            }
            catch (DbEntityValidationException ex)
            {
                var    controllerName = ControllerContext.RouteData.Values["controller"].ToString();
                var    actionName     = ControllerContext.RouteData.Values["action"].ToString();
                Logger log            = new Logger();
                log.ErrorLog(ex, controllerName, actionName);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, Constants.ErrorSysError));
            }
        }
        /// <summary>
        /// 提交试卷
        /// </summary>
        /// <param name="resultPaper"></param>
        /// <returns></returns>
        public bool SubmitExam(ResultDetailInfo resultPaper)
        {
            string sql = "insert into TBL_ResultDetail values (NEWID(),@paperId,@userId,@selectList,@result,GETDATE())";

            SqlParameter[] pars =
            {
                new SqlParameter("@paperId",    SqlDbType.UniqueIdentifier),
                new SqlParameter("@userId",     SqlDbType.UniqueIdentifier),
                new SqlParameter("@selectList", SqlDbType.NVarChar),
                new SqlParameter("@result",     SqlDbType.Int)
            };
            pars[0].Value = resultPaper.PaperID;
            pars[1].Value = resultPaper.StudentID;
            pars[2].Value = resultPaper.SelectList;
            pars[3].Value = resultPaper.ResultPoint;

            int result = SQLHelper.ExecutSql(sql, CommandType.Text, pars);

            return(result > 0);
        }
        /// <summary>
        /// 试卷提交
        /// </summary>
        /// <param name="singleList"></param>
        /// <param name="judgeList"></param>
        /// <returns></returns>
        public ActionResult SubmitExam(string selectList)
        {
            // 基本信息
            User    user    = (User)Session["User"];
            Guid    userId  = user.ID;
            Guid    paperId = (Guid)Session["PaperID"];
            DataSet dataSet = (DataSet)Session["PaperOptions"];

            // 考题排序规则整合
            DataTable option_paper = dataSet.Tables[1];

            foreach (DataRow item in dataSet.Tables[3].Rows)
            {
                option_paper.Rows.Add(item.ItemArray);
            }

            // 学生答题
            List <int> vs   = new List <int>();
            string     list = selectList;                  // 学生选中项

            list = list.Substring(0, list.Length - 1);
            string[] option_submit = list.Split(',');

            // 学生选中项位置
            foreach (var item in option_submit)
            {
                switch (item)
                {
                case "A":
                    vs.Add(0);
                    break;

                case "B":
                    vs.Add(1);
                    break;

                case "C":
                    vs.Add(2);
                    break;

                case "D":
                    vs.Add(3);
                    break;

                default:
                    vs.Add(-1);
                    break;
                }
            }
            // 改卷
            int resultPoint = 0;

            for (int i = 0; i < 30; i++)
            {
                string option = option_paper.Rows[i]["Option"].ToString();
                int    select = vs[i];

                if (select == -1)
                {
                    resultPoint += 0;// 未选中零分
                    continue;
                }
                if (option[select] == 'A')
                {
                    resultPoint += i < 20 ? 3 : 4;// 选项为A正确,前20题选择题每题3分,后10题判断题每题4分
                }
            }
            ResultDetailInfo result = new ResultDetailInfo();

            result.PaperID     = paperId;
            result.StudentID   = userId;
            result.SelectList  = list;
            result.ResultPoint = resultPoint;

            bool resultDetail = new ResultDetailBLL().SubmitExam(result);

            if (resultDetail)
            {
                return(Content(new AjaxResult
                {
                    state = ResultType.success.ToString(),
                    message = "提交成功!成绩:" + resultPoint + "分"
                }.ToJson()));
            }
            else
            {
                return(Content(new AjaxResult
                {
                    state = ResultType.info.ToString(),
                    message = "提交失败!请重新考试!"
                }.ToJson()));
            }
        }
 /// <summary>
 /// 提交试卷
 /// </summary>
 /// <param name="resultPaper"></param>
 /// <returns></returns>
 public bool SubmitExam(ResultDetailInfo resultPaper)
 {
     return(detailDAL.SubmitExam(resultPaper));
 }