Example #1
0
        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);
        }
Example #2
0
        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]);
            }
        }
Example #3
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);
        }