示例#1
0
        // IDEA: reference to the algorithm instance with the data to operate on (and chain it in the constructor)
        public ClassScheduleSetupAlgorithm(IClassActivityCollection classActivitiesCollection)
        {
            ClassSchedules         = new List <ClassSchedule>();
            CurrentScheduleBuilder = new ClassScheduleBuilder(classActivitiesCollection);

            PermutationIndex = 0;
        }
        public ClassScheduleBuilder(IClassActivityCollection classActivitiesCollection)
        {
            if (classActivitiesCollection is null)
            {
                throw new ArgumentNullException(nameof(classActivitiesCollection));
            }

            CurrentPlacements       = new List <CourseSchedulePlacement>();
            CurrentCourseActivities = classActivitiesCollection;
            InvalidScope            = 0;
        }
示例#3
0
        // TODO: fix to work with all parameters
        private static IEnumerable <ClassSchedule> BuildSchedule
        (
            Semester semester,
            PracticeClassSource practiceClassSource,
            OverlappingPolicy overlappingPolicy,
            PermutationInfo permutationInfo
        )
        {
            IClassActivityCollection    classActivitiesCollection = CreateClassActivityCollectionForPolicy(overlappingPolicy);
            ClassScheduleSetupAlgorithm algorithm = CreateAlgorithm(classActivitiesCollection, practiceClassSource);

            return(algorithm.CalculateSetup(semester));
        }
示例#4
0
        private static ClassScheduleSetupAlgorithm CreateAlgorithm(IClassActivityCollection classActivitiesCollection, PracticeClassSource practiceClassSource)
        {
            switch (practiceClassSource)
            {
            case PracticeClassSource.GroupOnly:
                return(new PracticeClassFromGroupOnlySetupAlgorithm(classActivitiesCollection));

            case PracticeClassSource.AllGroups:
                return(new PracticeClassFromAllGroupsSetupAlgorithm(classActivitiesCollection));

            default:
                throw new InvalidEnumArgumentException(nameof(practiceClassSource), (int)practiceClassSource, typeof(PracticeClassSource));
            }
        }
示例#5
0
 public PracticeClassFromAllGroupsSetupAlgorithm(IClassActivityCollection classActivitiesCollection) : base(classActivitiesCollection)
 {
     PraticeClasses = new Dictionary <Course, ClassActivitiesInfo>();
 }
示例#6
0
 public PracticeClassFromGroupOnlySetupAlgorithm(IClassActivityCollection classActivitiesCollection) : base(classActivitiesCollection)
 {
 }