예제 #1
0
        public object PostAddQuestion([FromBody] Question_View questionInfo)
        {
            Question question = new Question();

            question.id       = questionInfo.id;
            question.question = questionInfo.question;
            question.a        = questionInfo.a;
            question.b        = questionInfo.b;
            question.c        = questionInfo.c;
            question.d        = questionInfo.d;
            question.a        = questionInfo.a;
            question.answer   = questionInfo.answer;
            question.analysis = questionInfo.analysis;
            HttpCookie cookie1  = HttpContext.Current.Request.Cookies["CurrentCourse"];
            String     Id       = cookie1["CourseId"];
            int        courseId = int.Parse(Id);

            question.courseId    = courseId;
            question.unitId      = questionInfo.unitId;
            question.knowledgeId = questionInfo.knowledgeId;
            question.difficulty  = questionInfo.difficulty;
            question.rightNum    = questionInfo.rightNum;
            question.totalNum    = questionInfo.totalNum;
            var    future = Bmob.CreateTaskAsync(question);
            String id     = future.Result.objectId;

            return(id);
        }
예제 #2
0
        public object GetSelectedQuestion(int unitId, String knowledgeId, int difficulty)
        {
            var query = new BmobQuery();

            query.Limit(300);
            HttpCookie cookie1  = HttpContext.Current.Request.Cookies["CurrentCourse"];
            String     Id       = cookie1["CourseId"];
            int        courseId = int.Parse(Id);

            query.WhereEqualTo("courseId", courseId);
            var query1 = new BmobQuery();

            query1.WhereEqualTo("unitId", unitId);
            var query2 = new BmobQuery();

            query2.WhereEqualTo("knowledgeId", knowledgeId);
            var query3 = new BmobQuery();

            query3.WhereEqualTo("difficulty", difficulty);
            query2 = query2.And(query3);
            query1 = query1.And(query2);
            query  = query.And(query1);
            var future = Bmob.FindTaskAsync <Question>("Question", query);

            try
            {
                questionList = future.Result.results;
                foreach (var q in questionList)     //由于BmobModel中有BmobInt类型不能直接显示到页面中,所以需要对字段的类型进行处理,变为相对应的ViewModel格式。
                {
                    Question_View question_view = new Question_View();
                    question_view.id          = q.id.Get();
                    question_view.difficulty  = q.difficulty.Get();
                    question_view.totalNum    = q.totalNum.Get();
                    question_view.rightNum    = q.rightNum.Get();
                    question_view.question    = q.question;
                    question_view.a           = q.a;
                    question_view.b           = q.b;
                    question_view.c           = q.c;
                    question_view.d           = q.d;
                    question_view.answer      = q.answer;
                    question_view.analysis    = q.analysis;
                    question_view.courseId    = q.courseId.Get();
                    question_view.unitId      = q.unitId.Get();
                    question_view.knowledgeId = q.knowledgeId;
                    qList.Add(question_view);
                }
                return(ResultToJson.toJson(qList));
            }
            catch
            {
                return("获取失败");
            }
        }
예제 #3
0
        public object GetQuestionStatistic(int unitId)
        {
            var query = new BmobQuery();

            query.Limit(300);
            HttpCookie cookie1  = HttpContext.Current.Request.Cookies["CurrentCourse"];
            String     id       = cookie1["CourseId"];
            int        courseId = int.Parse(id);

            query.WhereEqualTo("courseId", courseId);
            var query1 = new BmobQuery();

            query1.WhereEqualTo("unitId", unitId);
            query = query.And(query1);
            //query.OrderByDescending("rightNum");
            var future = Bmob.FindTaskAsync <Question>("Question", query);

            try
            {
                questionList = future.Result.results;
                foreach (var q in questionList)     //由于BmobModel中有BmobInt类型不能直接显示到页面中,所以需要对字段的类型进行处理,变为相对应的ViewModel格式。
                {
                    Question_View question_view = new Question_View();
                    question_view.id       = q.id.Get();
                    question_view.question = q.question;
                    question_view.totalNum = q.totalNum.Get();
                    question_view.rightNum = q.rightNum.Get();

                    if (question_view.totalNum != 0)
                    {
                        question_view.accuracy = 100 * question_view.rightNum / question_view.totalNum;
                    }
                    qList.Add(question_view);
                }

                questionSortList = qList.OrderByDescending(s => s.accuracy).ToList();

                return(ResultToJson.toJson(questionSortList));
            }
            catch
            {
                return("获取失败");
            }
        }
예제 #4
0
        public object GetShowDetails(String examQuestionList)
        {
            string[] results      = examQuestionList.Split(new[] { ';' });
            int[]    examQuestion = Array.ConvertAll <string, int>(results, s => int.Parse(s));

            for (int i = 0; i < examQuestion.Length; i++)
            {
                var query = new BmobQuery();
                query.WhereEqualTo("id", examQuestion[i]);
                HttpCookie cookie1  = HttpContext.Current.Request.Cookies["CurrentCourse"];
                String     Id       = cookie1["CourseId"];
                int        courseId = int.Parse(Id);
                var        query2   = new BmobQuery();
                query2.WhereEqualTo("courseId", courseId);
                query = query.And(query2);
                query.OrderBy("id");
                var future = Bmob.FindTaskAsync <Question>("Question", query);
                try
                {
                    questionList = future.Result.results;
                    foreach (var q in questionList)     //由于BmobModel中有BmobInt类型不能直接显示到页面中,所以需要对字段的类型进行处理,变为相对应的ViewModel格式。
                    {
                        Question_View question_view = new Question_View();
                        question_view.id          = q.id.Get();
                        question_view.difficulty  = q.difficulty.Get();
                        question_view.question    = q.question;
                        question_view.courseId    = q.courseId.Get();
                        question_view.unitId      = q.unitId.Get();
                        question_view.knowledgeId = q.knowledgeId;
                        qList.Add(question_view);
                    }
                }
                catch
                {
                    return("获取失败");
                }
            }
            return(ResultToJson.toJson(qList));
        }
예제 #5
0
        public void QuestionInfo()              //查询全部题目的函数
        {
            HttpCookie cookie1  = HttpContext.Current.Request.Cookies["CurrentCourse"];
            String     id       = cookie1["CourseId"];
            int        courseId = int.Parse(id);
            var        query    = new BmobQuery();

            query.Limit(300);
            query.WhereEqualTo("courseId", courseId);
            query.OrderBy("id");
            var future = Bmob.FindTaskAsync <Question>("Question", query);

            try
            {
                questionList = future.Result.results;
                foreach (var q in questionList)     //由于BmobModel中有BmobInt类型不能直接显示到页面中,所以需要对字段的类型进行处理,变为相对应的ViewModel格式。
                {
                    Question_View question_view = new Question_View();
                    question_view.objectId    = q.objectId;
                    question_view.id          = q.id.Get();
                    question_view.difficulty  = q.difficulty.Get();
                    question_view.totalNum    = q.totalNum.Get();
                    question_view.rightNum    = q.rightNum.Get();
                    question_view.question    = q.question;
                    question_view.a           = q.a;
                    question_view.b           = q.b;
                    question_view.c           = q.c;
                    question_view.d           = q.d;
                    question_view.answer      = q.answer;
                    question_view.analysis    = q.analysis;
                    question_view.courseId    = q.courseId.Get();
                    question_view.unitId      = q.unitId.Get();
                    question_view.knowledgeId = q.knowledgeId;
                    qList.Add(question_view);
                }
            }
            catch { }
            //如果需要对其中一行数据进行处理,可以记录每以条记录的object值,方便对Bmob数据库进行操作。
        }
예제 #6
0
        public List <Question_View> selectQuestion(Requirement require, Double diff, int num)
        {
            HttpCookie           cookie1      = HttpContext.Current.Request.Cookies["CurrentCourse"];
            String               Id           = cookie1["CourseId"];
            int                  courseId     = int.Parse(Id);
            List <Question>      questionList = new List <Question>();
            List <Question_View> qList        = new List <Question_View>();
            //List<Question_View> resultList = new List<Question_View>();
            var query = new BmobQuery();

            query.WhereEqualTo("courseId", courseId);
            var q1 = new BmobQuery();

            q1.WhereEqualTo("difficulty", diff);
            query.And(q1);
            query.Limit(500);
            var future = Bmob.FindTaskAsync <Question>("Question", query);

            try
            {
                questionList = future.Result.results;
                Random ra   = new Random();
                int[]  qNum = new int[num];
                int    i    = 0;
                while (true)
                {
                    if (i == num - 1)
                    {
                        break;
                    }
                    int random = ra.Next(0, questionList.Count);
                    int n      = 0;
                    for (int k = 0; k < i; k++)
                    {
                        if (qNum[k] != random)
                        {
                            n++;
                        }
                    }
                    if (n == i)
                    {
                        qNum[i] = random;
                    }
                    else
                    {
                        continue;
                    }
                    i++;
                }
                for (int a = 0; a < num; a++)
                {
                    int      id = qNum[a];
                    Question q  = new Question();
                    q = questionList[id];
                    Question_View question_view = new Question_View();
                    question_view.id = q.id.Get();
                    //question_view.question = q.question;
                    //question_view.a = q.a;
                    //question_view.b = q.b;
                    //question_view.c = q.c;
                    //question_view.d = q.d;
                    //question_view.answer = q.answer;
                    //question_view.analysis = q.analysis;
                    //question_view.difficulty = q.difficulty.Get();
                    //question_view.unitId = q.unitId.Get();
                    //question_view.knowledgeId = q.knowledgeId;
                    qList.Add(question_view);
                }
            }
            catch
            {
                //result = "抽取失败";
            }
            return(qList);
        }