Ejemplo n.º 1
0
        // Transform the study plan (a list of enrolled units) into a list of semesters, each with their own list of enrolled units
        private IEnumerable <SemesterPlan> projectPlan()
        {
            List <SemesterPlan> semesters = new List <SemesterPlan>();

            var thisYear = System.DateTime.Now.Year;

            for (int year = thisYear + 5; year >= thisYear - 4; year--)
            {
                foreach (var offering in new Offering[] { Offering.Semester2, Offering.Semester1 })
                {
                    Semester semester = new Semester(year, offering);
                    semesters.Add(new SemesterPlan
                    {
                        label      = StudyPlannerModel.display(semester),
                        semester   = semester,
                        enrollable = inFlightUnitCode != null && StudyPlannerModel.isEnrollableIn(inFlightUnitCode, semester, plan.Items),
                        units      = plan.Items
                                     .Where(unit => unit.semester.Equals(semester))
                                     .Select(unit => new UnitInSemester
                        {
                            unit         = unit,
                            offering     = StudyPlannerModel.displayOffered(unit.code),
                            group        = getGroup(unit.code, unit.studyArea),
                            statusColour = StudyPlannerModel.isLegalIn(unit.code, semester, plan.Items) ? StudyAreaColour(unit.studyArea) : "Red"
                        })
                    });
                }
            }
            return(semesters);
        }