public void Validate()
{
ValidateInfo validateInfo = new ValidateInfo();
validateInfo.eventDB = this;
if (eventStore.IsPresent(new Id<Event>(1))) {
GetEvent().Validate(new Id<Event>(1), validateInfo);
}
foreach (Id<ControlPoint> controlId in AllControlPointIds)
GetControl(controlId).Validate(controlId, validateInfo);
foreach (Id<Course> courseId in validateInfo.eventDB.AllCourseIds)
GetCourse(courseId).Validate(courseId, validateInfo);
foreach (Id<CourseControl> courseControlId in AllCourseControlIds)
GetCourseControl(courseControlId).Validate(courseControlId, validateInfo);
foreach (Id<Special> specialId in AllSpecialIds)
GetSpecial(specialId).Validate(specialId, validateInfo);
foreach (Id<Leg> legId in AllLegIds)
GetLeg(legId).Validate(legId, validateInfo);
}