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"); } }
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); }
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); }
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; }
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); }