public void ReplaceCourse(Id<Course> id, Course course) { courseStore.Replace(id, course); }
// Create a new course with the given attributes. The course sorts after all existing courses. // If addStartAndFinish is true, then if exact one start control exists, it is added. If exactly one finish control exists, it is added. public static Id<Course> CreateCourse(EventDB eventDB, CourseKind courseKind, string name, ControlLabelKind labelKind, int scoreColumn, string secondaryTitle, float printScale, float climb, float? length, DescriptionKind descriptionKind, int firstControlOrdinal, bool addStartAndFinish) { // Find max sort order in use. int maxSortOrder = 0; foreach (Course course in eventDB.AllCourses) if (course.sortOrder > maxSortOrder) maxSortOrder = course.sortOrder; PrintArea printArea = (PrintArea) eventDB.GetEvent().printArea.Clone(); Course newCourse = new Course(courseKind, name, printScale, maxSortOrder + 1); newCourse.secondaryTitle = secondaryTitle; newCourse.climb = climb; newCourse.overrideCourseLength = length; newCourse.descKind = descriptionKind; newCourse.labelKind = labelKind; newCourse.scoreColumn = scoreColumn; newCourse.firstControlOrdinal = firstControlOrdinal; newCourse.printArea = printArea; Id<Course> newCourseId = eventDB.AddCourse(newCourse); if (addStartAndFinish) { // Add unique start and finish, if they exist. Id<ControlPoint> uniqueStart = FindUniqueControl(eventDB, newCourseId, ControlPointKind.Start); if (uniqueStart.IsNotNone) AddStartToCourse(eventDB, uniqueStart, newCourseId, false); Id<ControlPoint> uniqueFinish = FindUniqueControl(eventDB, newCourseId, ControlPointKind.Finish); if (uniqueFinish.IsNotNone) AddFinishToCourse(eventDB, uniqueFinish, newCourseId, false); } return newCourseId; }
public Id<Course> AddCourse(Course course) { return courseStore.Add(course); }