public static bool IsValid(string candidate) { string[] candidateParts = candidate.Split('/'); if (candidateParts.Length != 2) { return(false); } var pointPart = candidateParts[0]; var speedLevelPart = candidateParts[1]; // Check point part for each category and check speed level part. return(SpeedLevel.IsValid(speedLevelPart) && (NavaidPoint.IsValid(pointPart) || CoordinatePoint.IsValid(pointPart) || NamedPoint.IsValid(pointPart))); }
private static SignificantPoint GetSignificantPoint(string current) { if (NavaidPoint.IsValid(current)) { // Create NavaidPoint return(new NavaidPoint(current)); } // Check CoordinatePoint else if (CoordinatePoint.IsValid(current)) { //Create CoordinatePoint return(new CoordinatePoint(current)); } // Definitely NamedPoint else { return(new NamedPoint(current)); } }