public static List <Schedule> MakeSchedules(DB.Data.AggieAutoSchedulerContext _context, List <SubjectCoursePair> subjectCoursePairs, List <int> crns, List <SubjectCourseSection> subjectCourseSection) { List <List <Course> > courses = GetCourses(_context, subjectCoursePairs, crns, subjectCourseSection); List <Schedule> toReturn = new List <Schedule>(); Recursive(toReturn, courses, new Schedule(), 0); return(toReturn); }
public Course(int _crn) : this() { AAS.DB.Data.AggieAutoSchedulerContext context = new DB.Data.AggieAutoSchedulerContext(new Microsoft.EntityFrameworkCore.DbContextOptions <DB.Data.AggieAutoSchedulerContext>()); List <AAS.DB.Course> courses = context.Course. Include(course => course.Periods). Include(course => course.Exams). Where(course => course.CRN == _crn) .ToList(); if (courses.Count > 0) { CopyData(courses[0]); } }
private static List <List <Course> > GetCourses(DB.Data.AggieAutoSchedulerContext _context, List <SubjectCoursePair> subjectCoursePairs, List <int> crns, List <SubjectCourseSection> subjectCourseSections) { subjectCoursePairs = subjectCoursePairs.Distinct().ToList(); crns = crns.Distinct().ToList(); subjectCourseSections = subjectCourseSections.Distinct().ToList(); List <List <Course> > courses = new List <List <Course> >(); // Add crns foreach (int crn in crns) { List <DB.Course> l = _context.Course. Include(course => course.Periods). Include(course => course.Exams). Where(course => course.CRN == crn) .ToList(); if (l.Count > 0) { List <Course> toAdd = new List <Course>(); toAdd.Add(new Course(l[0])); courses.Add(toAdd); } } // add subject/coursenumber pairs foreach (SubjectCoursePair scp in subjectCoursePairs) { List <DB.Course> l = _context.Course. Include(course => course.Periods). Include(course => course.Exams). Where(course => new SubjectCoursePair(course.Subject, course.CourseNumber) == scp) .ToList(); if (l.Count > 0) { List <Course> toAdd = new List <Course>(); foreach (DB.Course c in l) { toAdd.Add(new Course(c)); } courses.Add(toAdd); } } // add subject/coursenumber/sectionnumbers foreach (SubjectCourseSection scs in subjectCourseSections) { List <DB.Course> l = _context.Course. Include(course => course.Periods). Include(course => course.Exams). Where(course => new SubjectCourseSection(course.Subject, course.CourseNumber, course.SectionNumber) == scs) .ToList(); if (l.Count > 0) { List <Course> toAdd = new List <Course>(); toAdd.Add(new Course(l[0])); courses.Add(toAdd); } } return(courses); }