예제 #1
0
 public void CreateExamGroup(ExamGroupModel model)
 {
     using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(databaseName)))
     {
         var p = new DynamicParameters();
         p.Add("@GroupId", model.Group.Id);
         p.Add("@ExamId", model.ExamId);
         p.Add("@id", 0, dbType: DbType.Int32, direction: ParameterDirection.Output);
         connection.Execute("dbo.spExamGroups_Insert", p, commandType: CommandType.StoredProcedure);
         model.Id = p.Get <int>("@id");
     }
 }
예제 #2
0
        private int WriteQuestionsData(ExamGroupModel examGroup, int startingLine)
        {
            int k = startingLine;

            excel.WriteToCell(k, 0, $"Group {examGroup.Group.Name}", 1);
            k++;
            excel.WriteToCell(k, 0, "Question #", 1);
            excel.WriteToCell(k, 1, "Average (Mark)", 1);
            excel.WriteToCell(k, 2, "Success (%)", 1);
            k++;
            return(k);
        }
예제 #3
0
        private int WriteOutcomesData(ExamGroupModel examGroup, int studentsCount, int startingLine)
        {
            int p = startingLine;

            excel.WriteToCell(p, 0, $"Group {examGroup.Group.Name}", 2);
            p++;
            excel.WriteToCell(p, 0, "Outcome's Name", 2);
            excel.WriteToCell(p, 1, "Average (Mark)", 2);
            excel.WriteToCell(p, 2, "Success(%)", 2);
            excel.WriteToCell(p, 3, "Outcome's Questions List", 2);
            excel.WriteToCell(p, 4, "Outcome's Description", 2);
            p++;
            foreach (var courseOutcome in Exam.Assignment.Course.CourseOutcomes)
            {
                string  questionsList = "";
                decimal toplam        = 0;
                decimal qtoplam       = 0;
                List <QuestionModel> questions;
                questions = GlobalConfig.Connection.GetQuestion_GetByCourseOutcomesIdAndExamGroupsId(examGroup.Id, courseOutcome.Id);
                foreach (var question in questions)
                {
                    List <ResultModel> results;
                    results = GlobalConfig.Connection.GetResults_GetByQuestionId(question.Id);
                    foreach (var result in results)
                    {
                        if (result.IsTrue)
                        {
                            toplam += question.Mark;
                        }
                    }
                    qtoplam       += question.Mark;
                    questionsList += $"{question.Name}, ";
                }
                excel.WriteToCell(p, 0, courseOutcome.Name, 2);
                excel.WriteToCell(p, 4, courseOutcome.Description, 2);

                if (qtoplam == 0)
                {
                    excel.WriteToCell(p, 1, "0", 2);
                    excel.WriteToCell(p, 2, "0", 2);
                }
                else
                {
                    excel.WriteToCell(p, 1, (toplam / studentsCount / questions.Count).ToString("0.##"), 2);
                    excel.WriteToCell(p, 2, (toplam / studentsCount / qtoplam * 100).ToString("0.##"), 2);
                    excel.WriteToCell(p, 3, questionsList, 2);
                }
                p++;
            }
            p++;
            return(p);
        }
예제 #4
0
        private void ChooseAnswerKeyBtn_Click(object sender, RoutedEventArgs e)
        {
            string answersKeyPath = GetFilePath();

            if (answersKeyPath == "")
            {
                if (Evaluator.AnswersKeyPath == "")
                {
                    errorAsnwerKey.Visibility = Visibility.Visible;
                }

                return;
            }
            errorAsnwerKey.Visibility           = Visibility.Collapsed;
            AnswersOutcomesMatrices.ItemsSource = null;
            AnswersOutcomesMatrices.Items.Clear();
            Exam.ExamGroups.Clear();
            Evaluator.AnswerKeys.Clear();
            Evaluator.GetAnswersKeys(answersKeyPath);
            List <GroupModel> Groups = GlobalConfig.Connection.GetGroup_All();

            foreach (AnswerKeyModel model in Evaluator.AnswerKeys)
            {
                ExamGroupModel examGroup = new ExamGroupModel();
                model.Group     = Groups.Find(g => g.Name == model.Group.Name);
                examGroup.Group = model.Group;
                int i = 1;
                foreach (char c in model.AnswersList)
                {
                    QuestionModel question = new QuestionModel();
                    question.Name = i.ToString();
                    examGroup.Questions.Add(question);
                    i++;
                }
                Exam.ExamGroups.Add(examGroup);
            }
            answersOutcomesExpander.IsEnabled  = true;
            answersOutcomesExpander.IsExpanded = true;
            GlobalConfig.Connection.GetCourseOutcomes_ById(Exam.Assignment.Course);
            AnswersOutcomesMatrices.ItemsSource = Exam.ExamGroups;
        }
예제 #5
0
        private int WriteStudentsData(List <StudentModel> students, ExamGroupModel examGroup, int startingLine, int questionStartingLine)
        {
            int i = startingLine, j = 0;

            excel.WriteToCell(i, 0, $"Group {examGroup.Group.Name}", 0);
            i++;
            excel.WriteToCell(i, 0, "Student Reg No", 0);

            excel.WriteToCell(i, 1, "Full Name", 0);
            j = 2;

            foreach (var question in examGroup.Questions)
            {
                excel.WriteToCell(i, j, $"Question {question.Name}", 0);
                j++;
            }
            excel.WriteToCell(i, j, "Sum", 0);
            i++;
            decimal[,] studentMarks = new decimal[students.Count, examGroup.Questions.Count];
            int m = 0, n;

            foreach (StudentModel student in students)
            {
                j = 0;
                n = 0;
                excel.WriteToCell(i, j, student.RegNo.ToString(), 0);
                j++;
                excel.WriteToCell(i, j, student.FullName, 0);
                j++;
                decimal markSum = 0;
                foreach (QuestionModel question in examGroup.Questions)
                {
                    ResultModel result = GlobalConfig.Connection.GetResults_GetByStudentIdAndQuestionId(student.Id, question.Id);
                    if (result.IsTrue)
                    {
                        markSum += question.Mark;
                        excel.WriteToCell(i, j, question.Mark.ToString(), 0);
                        studentMarks[m, n] = question.Mark;
                    }
                    else
                    {
                        excel.WriteToCell(i, j, "0", 0);
                        studentMarks[m, n] = 0;
                    }
                    j++;
                    n++;
                }
                excel.WriteToCell(i, j, markSum.ToString(), 0);
                m++;
                i++;
            }
            j = 0;
            excel.WriteToCell(i, j, "Average", 0);
            j += 2;
            n  = 0;
            foreach (QuestionModel question in examGroup.Questions)
            {
                decimal questionAVG = 0;
                for (m = 0; m < students.Count; m++)
                {
                    questionAVG += studentMarks[m, n];
                }
                excel.WriteToCell(i, j, (questionAVG / students.Count).ToString("0.##"), 0);
                questionStartingLine = WriteAVGsToQuestions(question, students.Count, questionAVG, questionStartingLine);
                j++;
                n++;
            }
            j  = 0;
            i += 2;
            startingLines[1] = questionStartingLine + 1;
            return(i);
        }