public CourseGroup Build() { if (Lecture == null) { throw new InvalidOperationException("The lecture must be set first."); } ClassAcitivity lecture = Lecture.CreateClassActivity(); IEnumerable <ClassAcitivity> practicalClasses = BuildClassActivities(PracticalClasses); IEnumerable <ClassAcitivity> labs = BuildClassActivities(Labs); var group = new CourseGroup(lecture, practicalClasses, labs); lecture.Group = group; SetGroup(group, practicalClasses); SetGroup(group, labs); return(group); }