/// <summary> /// How many credit points worth of subjects still need to be taken before this plan is valid? /// </summary> public int RemainingCreditPoints() { if (!SelectedCourses.Any()) { return(int.MaxValue); } return(SelectedCourses.First().CreditPoints() - SelectedSubjects.Sum(subject => subject.CreditPoints())); }
/// <summary> /// Remove content from the study plan /// </summary> /// <param name="content">A subject or course that is being removed from the plan</param> public void RemoveContent(Content content) { if (content is Subject) { SelectedSubjects.Remove(content as Subject); } else { SelectedCourses.Remove(content as Course); } RefreshBannedSubjectsList(); RefreshRelations(); Order(); }
/// <summary> /// Add content(s) to this study plan /// </summary> /// <param name="contents">A list of subjects or courses that need to be added</param> public void AddContents(IEnumerable <Content> contents) { contents = contents.Except(SelectedSubjects); if (!contents.Any()) { return; } foreach (Content content in contents) { if (content is Subject) { SelectedSubjects.Add(content as Subject); } else { SelectedCourses.Add(content as Course); } } RefreshBannedSubjectsList(); RefreshRelations(); Order(); }
/// <summary> /// Removes a course from this schedule. /// </summary> /// <param name="courseId"></param> public void RemoveCourse(string courseId) { var course = SelectedCourses.FirstOrDefault(selectedCourse => selectedCourse.CourseId == courseId); RemoveCourse(course); }
/// <summary> /// Removes a course from this schedule. /// </summary> /// <param name="selectedCourse"></param> public void RemoveCourse(SelectedCourse selectedCourse) { SelectedCourses.Remove(selectedCourse); }
/// <summary> /// Adds courses to this schedule. /// </summary> /// <param name="selectedCourse"></param> public void AddCourses(ICollection <SelectedCourse> selectedCourse) { SelectedCourses.AddRange(selectedCourse); }