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