public StudentCourseReport(Course course, DegreeProgram program, Student student, char?grade, CourseTime time) : base(course.CRN, course.DepartmentName, course.Name, course.Description, course.SectionNumber, course.MaxSeats, course.Location, course.SemesterID, course.CourseTimeID) { this.DegreeProgram = program; this.Student = student; this.grade = grade; if (time.CourseStart < DateTime.Now && DateTime.Now < time.CourseEnd) { this.setStatus(Status.InProgress); } else if (this.grade == '\0' || this.grade == null) { if (DateTime.Now > time.CourseEnd) { this.setStatus(Status.AwaitingGrade); } else { this.setStatus(Status.Default); } } else { this.setStatus(Status.Completed); } }
public Transcript(DegreeProgram program, Student student, List <Course> coursesTaken) { this.DegreeProgram = program; this.Student = student; List <Course> requiredCourses = this.DegreeProgram.RequiredCourses.Courses; this.CourseReports = new List <StudentCourseReport>(); requiredCourses.AddRange(coursesTaken.Where(courseTaken => requiredCourses.All(coursesRequired => coursesRequired.CRN != courseTaken.CRN))); this.Courses = new List <Course>(requiredCourses); }