public Q4ResultViewModel GetStudentQ4Result(Student student, Question Questionnaire)
        {
            var Q4 = db.Response_View
                     .Where(d => d.學生編號 == student.ID && d.試卷編號 == Questionnaire.ID);
            Q4ResultViewModel result = new Q4ResultViewModel()
            {
                橫坐標 = 0, 縱坐標 = 0
            };
            int i = 1;

            foreach (var item in Q4)
            {
                if (i < 11)
                {
                    result.橫坐標 = result.橫坐標 + CalculateScore(item.反轉, item.選項編號);
                }
                else
                {
                    result.縱坐標 = result.縱坐標 + CalculateScore(item.反轉, item.選項編號);
                }
                i++;
            }
            return(result);
        }
        public Result_View CalculateResult(Student student, ResponseGoalService _responseGoalService, QuestionService _questionService)
        {
            bool haveResult = db.Result.Where(d => d.Student_ID == student.ID).Any();

            if (haveResult == false)
            {
                List <Question> list = _questionService.GetQuestionnaireList();

                ResponseGoal      goal = _responseGoalService.GetGoal(student);
                Q2ResultViewModel q2   = GetStudentQ2Result(student, list[1]);
                int q3 = GetStudentQ3Result(student, list[2]);
                Q4ResultViewModel q4             = GetStudentQ4Result(student, list[3]);
                int[]             importanceTop3 = ResponseImportanceSort(student);

                Result result = new Result()
                {
                    Student_ID       = student.ID,
                    Goal_ID          = goal.First_Goal_ID,
                    DISC_Number      = q2.Number,
                    D                = q2.D,
                    I                = q2.I,
                    S                = q2.S,
                    C                = q2.C,
                    Ability          = q3,
                    Horizontal_Score = q4.橫坐標,
                    Vertical_Score   = q4.縱坐標,
                    Top_1            = importanceTop3[0],
                    Top_2            = importanceTop3[1],
                    Top_3            = importanceTop3[2]
                };
                db.Result.Add(result);
                db.SaveChanges();
            }

            return(db.Result_View.Where(d => d.Student_ID == student.ID).FirstOrDefault());
        }