public void CalculateAbsenceForStudentTest() { //Arrange Week weekTest = new Week { WeekId = 1, Monday = true, Tuesday = true, Wednesday = false, Thursday = true, Friday = true }; DateTime startDateTest = new DateTime(2020, 11, 30); DateTime endDateTest = new DateTime(2021, 1, 02); Course courseTest = new Course { CourseId = 1, Name = "Test F*g", Week = weekTest, StartDate = startDateTest, EndDate = endDateTest }; Student studentTest1 = new Student { StudentId = 1, Name = "Carlos", Semester = 3 }; Student studentTest2 = new Student { StudentId = 2, Name = "Hector", Semester = 3 }; Student studentTest3 = new Student { StudentId = 3, Name = "Gustavo", Semester = 3 }; Student studentTest4 = new Student { StudentId = 4, Name = "Juan", Semester = 3 }; List <Student> studentList = new List <Student> { studentTest1, studentTest2, studentTest3, studentTest4 }; List <Absence> absenceTestList = new List <Absence> { new Absence { Student = studentTest3, Course = courseTest, Date = startDateTest.AddDays(14) } }; //Act for (int i = 0; i < 4; i++) { absenceTestList.Add(new Absence { Student = studentTest1, Course = courseTest, Date = startDateTest.AddDays(7) }); absenceTestList.Add(new Absence { Student = studentTest2, Course = courseTest, Date = startDateTest.AddDays(7) }); absenceTestList.Add(new Absence { Student = studentTest4, Course = courseTest, Date = startDateTest.AddDays(7) }); } CalculateAbsence calcAbs = AbsenceForStudent(courseTest, absenceTestList, studentTest4); //Assert Assert.Equal("Juan", calcAbs.StudentName); Assert.Equal(20, calcAbs.AbsenceInPercent); }
public IActionResult EducationStudents(int educationId, int semesterNo) { Education education = educationRepo.Educations.FirstOrDefault(e => e.EducationId == educationId); List <Absence> tempAbsences = absenceRepo.AbsenceBy(education, semesterNo); List <CalculateAbsence> absenceList = new CalculateAbsence().AbsenceForStudentsInCourse(tempAbsences); return(View("CourseStudents", new StudentsViewModel { Absences = absenceList, Education = education, Course = new Course(), SemesterNo = semesterNo })); }
private CalculateAbsence AbsenceForStudent(Course course, List <Absence> absenceByCourseList, Student student) { List <Absence> studentAbsenceList = absenceByCourseList.FindAll(a => a.Student.StudentId == student.StudentId); double daysOfAbsence = studentAbsenceList.Count; double totalCourseDays = AllDays(course); double result = (daysOfAbsence / totalCourseDays) * 100; CalculateAbsence studentAbsence = new CalculateAbsence { StudentName = student.Name, AbsenceInPercent = result }; return(studentAbsence); }
public IActionResult CourseStudents(int courseId) { if (courseId == 0) { courseId = 1; } Course course = courseRepo.Courses.FirstOrDefault(c => c.CourseId == courseId); List <Absence> tempAbsences = absenceRepo.AbsenceByCourse(course); List <CalculateAbsence> absenceList = new CalculateAbsence().AbsenceForStudentsInCourse(tempAbsences); return(View("CourseStudents", new StudentsViewModel { Absences = absenceList, Course = course, Education = new Education() })); }
//Service methods to the methods above that are being tested private CalculateAbsence AbsenceBuilder(List <Course> courseList, List <Absence> absenceByCourseOrEducationList, Student student) { if (courseList != null) { List <Absence> absenceForStudentList = absenceByCourseOrEducationList.FindAll(a => a.Student.StudentId == student.StudentId); double daysOfAbsence = absenceForStudentList.Count; double totalCourseDays = FindSchoolDays(courseList); double result = (daysOfAbsence / totalCourseDays) * 100; CalculateAbsence studentAbsence = new CalculateAbsence { StudentName = student.Name, AbsenceInPercent = result }; return(studentAbsence); } return(new CalculateAbsence()); }
public void CalculateAbsenceForAllStudentsTest() { //Arrange Week weekTest = new Week { WeekId = 1, Monday = true, Tuesday = true, Wednesday = false, Thursday = true, Friday = true }; DateTime startDateTest = new DateTime(2020, 11, 30); DateTime endDateTest = new DateTime(2021, 1, 02); Course courseTest = new Course { CourseId = 1, Name = "Test F*g", Week = weekTest, StartDate = startDateTest, EndDate = endDateTest }; Student studentTest1 = new Student { StudentId = 1, Name = "Carlos", Semester = 3 }; Student studentTest2 = new Student { StudentId = 2, Name = "Hector", Semester = 3 }; Student studentTest3 = new Student { StudentId = 3, Name = "Gustavo", Semester = 3 }; Student studentTest4 = new Student { StudentId = 4, Name = "Juan", Semester = 3 }; List <Student> studentList = new List <Student> { studentTest1, studentTest2, studentTest3, studentTest4 }; List <Absence> absenceTestList = new List <Absence> { new Absence { Student = studentTest3, Course = courseTest, Date = startDateTest.AddDays(14) }, new Absence { Student = studentTest2, Course = courseTest, Date = startDateTest.AddDays(15) } }; CalculateAbsence studentAbsence1 = new CalculateAbsence(); CalculateAbsence studentAbsence2 = new CalculateAbsence(); CalculateAbsence studentAbsence3 = new CalculateAbsence(); CalculateAbsence studentAbsence4 = new CalculateAbsence(); //Act for (int i = 0; i < 4; i++) { DateTime date = startDateTest.AddDays(1); absenceTestList.Add(new Absence { Student = studentTest1, Course = courseTest, Date = startDateTest.AddDays(7) }); absenceTestList.Add(new Absence { Student = studentTest2, Course = courseTest, Date = startDateTest.AddDays(7) }); absenceTestList.Add(new Absence { Student = studentTest4, Course = courseTest, Date = startDateTest.AddDays(7) }); if (i == 3) { date = startDateTest.AddDays(-1); absenceTestList.Add(new Absence { Student = studentTest4, Course = courseTest, Date = date.AddDays(7) }); } else { absenceTestList.Add(new Absence { Student = studentTest4, Course = courseTest, Date = date.AddDays(7) }); } } List <CalculateAbsence> studentAbsenceList = new List <CalculateAbsence>(); foreach (Student student in studentList) { studentAbsenceList.Add(AbsenceForStudent(courseTest, absenceTestList, student)); } foreach (CalculateAbsence calcAbs in studentAbsenceList) { if (calcAbs.StudentName == studentTest1.Name) { studentAbsence1 = calcAbs; } else if (calcAbs.StudentName == studentTest2.Name) { studentAbsence2 = calcAbs; } else if (calcAbs.StudentName == studentTest3.Name) { studentAbsence3 = calcAbs; } else if (calcAbs.StudentName == studentTest4.Name) { studentAbsence4 = calcAbs; } } //Assert //Student1 Carlos Assert.Equal("Carlos", studentAbsence1.StudentName); Assert.Equal(20, studentAbsence1.AbsenceInPercent); //Student2 Hector Assert.Equal("Hector", studentAbsence2.StudentName); Assert.Equal(25, studentAbsence2.AbsenceInPercent); //Student3 Gustavo Assert.Equal("Gustavo", studentAbsence3.StudentName); Assert.Equal(5, studentAbsence3.AbsenceInPercent); //Student4 Juan Assert.Equal("Juan", studentAbsence4.StudentName); Assert.Equal(40, studentAbsence4.AbsenceInPercent); }