public StudentSubjectMarksDto GetTestMarkBottomStudentSubjectHistory(Guid studentTermRegisterId, string subjectCode) { StudentSubjectMarksDto studentSubjectMarksDto = new StudentSubjectMarksDto(); bool dbFlag = false; var studentTermRegister = _uofRepository.StudentTermRegisterRepository.GetByEnrollemtID(studentTermRegisterId, ref dbFlag); if (studentTermRegister == null) { return(studentSubjectMarksDto); } var student = _uofRepository.StudentRepository.GetStudentById(studentTermRegister.StudentID, ref dbFlag); if (student == null) { return(studentSubjectMarksDto); } var subject = _uofRepository.SubjectRepository.GetSubjectByCode(subjectCode, student.SchoolID, ref dbFlag); if (subject == null) { return(studentSubjectMarksDto); } studentSubjectMarksDto.PercentageAscendingByDate = new List <StudentSubjectMarksByDateDto>(); var marks = _uofRepository.TestMarkRepository.GetListTestMarksStudentIDAndSubjectIDLatest100((Guid)student.StudentID, (Guid)subject.SubjectID, ref dbFlag)?.OrderByDescending(c => c.TestDateCreated)?.ToList() ?? new List <TestMarkDto>(); if (marks == null) { return(studentSubjectMarksDto); } foreach (var testMark in marks) { studentSubjectMarksDto.PercentageAscendingByDate.Add(new StudentSubjectMarksByDateDto() { Mark = testMark.MarkPercentage, Date = testMark.TestDateCreated }); } studentSubjectMarksDto.PercentageAscendingByDate = studentSubjectMarksDto.PercentageAscendingByDate.ToSetPositiveOrNegativeExtensionMarkDateValue(); studentSubjectMarksDto.PercentageAscendingByDate = studentSubjectMarksDto.PercentageAscendingByDate.OrderBy(c => c.Date).ToList(); return(studentSubjectMarksDto); }
public List <StudentSubjectMarksDto> GetStudentMarkExamHistoryMarksListByRegNumberAndSchoolID(string regNumber, Guid schoolID) { bool dbFlag = false; var student = _uofRepository.StudentRepository.GetStudentByRegNumber(regNumber, schoolID, ref dbFlag); if (student == null) { return(null); } var marks = _uofRepository.ExamRepository.GetListExamByStudentId((Guid)student.StudentID, ref dbFlag) ?? new List <ExamDto>(); if (marks == null | marks?.Count() <= 0) { return(null); } List <StudentSubjectMarksDto> studentSubjectMarksDtos = new List <StudentSubjectMarksDto>(); var subjects = marks.Select(c => new { Code = c.SubjectCode, Name = c.SubjectName }).Distinct(); foreach (var su in subjects) { StudentSubjectMarksDto studentSubjectMarksDto = new StudentSubjectMarksDto(); studentSubjectMarksDto.SubjectCode = su.Code; studentSubjectMarksDto.SubjectName = su.Name; studentSubjectMarksDto.PercentageAscendingByDate = new List <StudentSubjectMarksByDateDto>(); var myMarks = marks.Where(c => c.SubjectCode == su.Code); if (myMarks == null | myMarks?.Count() <= 0) { return(null); } foreach (var testMark in myMarks) { studentSubjectMarksDto.PercentageAscendingByDate.Add(new StudentSubjectMarksByDateDto() { Mark = testMark.Mark, Date = testMark.EndOfTermDate }); } studentSubjectMarksDto.PercentageAscendingByDate = studentSubjectMarksDto.PercentageAscendingByDate.ToSetPositiveOrNegativeExtensionMarkDateValue(); studentSubjectMarksDtos.Add(studentSubjectMarksDto); } return(studentSubjectMarksDtos); }
public StudentSubjectMarksDto GetStudentMarkExamHistoryMarksListByRegNumberAndSchoolIDAndSubjectCode(string regNumber, string subjectCode, Guid schoolID) { bool dbFlag = false; var student = _uofRepository.StudentRepository.GetStudentByRegNumber(regNumber, schoolID, ref dbFlag); if (student == null) { return(null); } var subject = _uofRepository.SubjectRepository.GetSubjectByCode(subjectCode, schoolID, ref dbFlag); if (subject == null) { return(null); } var marks = _uofRepository.ExamRepository.GetListExamByStudentIdAndSubjectCode(schoolID, (Guid)student.StudentID, subjectCode, ref dbFlag) ?? new List <ExamDto>(); if (marks == null | marks?.Count() <= 0) { return(null); } StudentSubjectMarksDto studentSubjectMarksDto = new StudentSubjectMarksDto(); studentSubjectMarksDto.SubjectCode = subject.SubjectCode; studentSubjectMarksDto.SubjectName = subject.SubjectName; studentSubjectMarksDto.PercentageAscendingByDate = new List <StudentSubjectMarksByDateDto>(); foreach (var testMark in marks) { studentSubjectMarksDto.PercentageAscendingByDate.Add(new StudentSubjectMarksByDateDto() { Mark = testMark.Mark, Date = testMark.EndOfTermDate }); } studentSubjectMarksDto.PercentageAscendingByDate = studentSubjectMarksDto.PercentageAscendingByDate.ToSetPositiveOrNegativeExtensionMarkDateValue(); return(studentSubjectMarksDto); }
public StudentSubjectMarksDto GetStudentMarksListByCurrentTermAndStudentTermRegistrationAndSubjectCode(Guid studentTermRegistrationId, string subjectCode) { StudentSubjectMarksDto studentSubjectMarksDto = new StudentSubjectMarksDto(); bool dbFlag = false; var studetTermReg = _uofRepository.StudentTermRegisterRepository.GetByEnrollemtID(studentTermRegistrationId, ref dbFlag); if (studetTermReg == null) { return(studentSubjectMarksDto); } var student = _uofRepository.StudentRepository.GetStudentById(studetTermReg.StudentID, ref dbFlag); if (student == null) { return(studentSubjectMarksDto); } var subject = _uofRepository.SubjectRepository.GetSubjectByCode(subjectCode, student.SchoolID, ref dbFlag); if (subject == null) { return(studentSubjectMarksDto); } var marks = _uofRepository.ExamRepository.GetListExamByStudentIdAndSubjectCode(student.SchoolID, (Guid)student.StudentID, subjectCode, ref dbFlag) ?? new List <ExamDto>(); if (marks == null) { return(studentSubjectMarksDto); } foreach (var testMark in marks) { studentSubjectMarksDto.PercentageAscendingByDate.Add(new StudentSubjectMarksByDateDto() { Mark = testMark.Mark, Date = testMark.EndOfTermDate }); } studentSubjectMarksDto.PercentageAscendingByDate.ToSetPositiveOrNegativeExtensionMarkDateValue(); return(studentSubjectMarksDto); }
public DataTable GetClassTestAverages(Guid classId, Guid termId) { bool dbFlag = false; var classObj = _uofRepository.ClassRepository.GetClassByID(classId, ref dbFlag); var termObj = _uofRepository.TermRepository.GetByID(termId, ref dbFlag); var tests = _uofRepository.TestMarkRepository.GetListTestMarksByClassIdAndTermID(classId, termId, ref dbFlag); var uniqueStudents = tests.Select(c => c.RegNumber).Distinct(); var uniqueSubjectCode = tests.Select(c => c.SubjectCode).Distinct(); DataTable finalScoreSheet = new DataTable(); finalScoreSheet.Columns.Add("RegNumber"); finalScoreSheet.Columns.Add("StudentName"); finalScoreSheet.Columns.Add("ClassName"); finalScoreSheet.Columns.Add("TotalAverage"); finalScoreSheet.Columns.Add("ListOfTests", typeof(List <StudentSubjectMarksDto>)); foreach (var subject in uniqueSubjectCode) { finalScoreSheet.Columns.Add("SubCode_" + subject); } foreach (var regNumber in uniqueStudents) { var student = tests.FirstOrDefault(c => c.RegNumber == regNumber); DataRow row = finalScoreSheet.NewRow(); row["RegNumber"] = student.RegNumber; row["StudentName"] = student.FullName; row["ClassName"] = student.ClassName; var studentSubjectList = tests.Where(c => c.RegNumber == student.RegNumber).ToList(); if (studentSubjectList == null) { row["TotalAverage"] = 0; finalScoreSheet.Rows.Add(row); continue; } var uniqueStudentSubject = studentSubjectList.Select(c => new { SubjectCode = c.SubjectCode, SubjectName = c.SubjectName }).Distinct(); if (uniqueStudentSubject == null) { row["TotalAverage"] = 0; finalScoreSheet.Rows.Add(row); continue; } List <StudentSubjectMarksDto> studentSubjectMarksDtos = new List <StudentSubjectMarksDto>(); List <int> totalAverage = new List <int>(); decimal totalWritten = 0; foreach (var studentSubject in uniqueStudentSubject) { StudentSubjectMarksDto studentSubjectMarksDto = new StudentSubjectMarksDto(); studentSubjectMarksDto.SubjectCode = studentSubject.SubjectCode; studentSubjectMarksDto.SubjectName = studentSubject.SubjectName; studentSubjectMarksDto.PercentageAscendingByDate = new List <StudentSubjectMarksByDateDto>(); var subjectsMarks = studentSubjectList.Where(c => c.SubjectCode == studentSubject.SubjectCode); if (subjectsMarks != null && subjectsMarks?.Count() >= 1) { foreach (var testMark in subjectsMarks) { studentSubjectMarksDto.PercentageAscendingByDate.Add(new StudentSubjectMarksByDateDto() { Mark = testMark.MarkPercentage, Date = testMark.TestDateCreated }); } studentSubjectMarksDto.PercentageAscendingByDate = studentSubjectMarksDto.PercentageAscendingByDate.ToSetPositiveOrNegativeExtensionMarkDateValue(); var subjectAverage = Convert.ToInt32(subjectsMarks.Average(c => c.MarkPercentage)); totalAverage.Add(subjectAverage); row["SubCode_" + studentSubject.SubjectCode] = subjectAverage; if (subjectAverage >= 1) { totalWritten++; } } studentSubjectMarksDtos.Add(studentSubjectMarksDto); } row["ListOfTests"] = studentSubjectMarksDtos; if (totalWritten >= 1) { row["TotalAverage"] = Convert.ToInt32(totalAverage.Average()); } finalScoreSheet.Rows.Add(row); } return(finalScoreSheet); }