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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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()
            }));
        }
Ejemplo n.º 5
0
        //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);
        }