コード例 #1
0
        public int GetDISC_Type(Q2ResultViewModel q2)
        {
            Dictionary <string, int> pairs = new Dictionary <string, int>();

            pairs.Add("D", q2.D);
            pairs.Add("I", q2.I);
            pairs.Add("S", q2.S);
            pairs.Add("C", q2.C);
            var first  = pairs.OrderByDescending(d => d.Value).FirstOrDefault();
            int number = 0;

            switch (first.Key)
            {
            case "D": number = 1;
                break;

            case "I": number = 2;
                break;

            case "S": number = 3;
                break;

            case "C": number = 4;
                break;
            }

            return(number);
        }
コード例 #2
0
        public Q2ResultViewModel GetStudentQ2Result(Student student, Question Questionnaire)
        {
            var Q2 = db.Response_View
                     .Where(d => d.學生編號 == student.ID && d.試卷編號 == Questionnaire.ID);
            Q2ResultViewModel q2 = new Q2ResultViewModel()
            {
                D = 0, I = 0, S = 0, C = 0
            };

            foreach (var item in Q2)
            {
                var scroe = CalculateScore(item.反轉, item.選項編號);
                switch (scroe)
                {
                case 1:
                    q2.D++;
                    break;

                case 2:
                    q2.I++;
                    break;

                case 3:
                    q2.S++;
                    break;

                case 4:
                    q2.C++;
                    break;
                }
            }
            q2.Number = GetDISC_Type(q2);

            return(q2);
        }
コード例 #3
0
        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());
        }