22// Licensed under the MIT license.
33
44using System ;
5- using System . Linq ;
65
76namespace Microsoft . OpenApi . Hidi
87{
@@ -14,17 +13,30 @@ public static OpenApiSpecVersion TryParseOpenApiSpecVersion(string value)
1413 {
1514 throw new InvalidOperationException ( "Please provide a version" ) ;
1615 }
17- var res = value . Split ( '.' , StringSplitOptions . RemoveEmptyEntries ) . FirstOrDefault ( ) ;
16+ // Split the version string by the dot
17+ var versionSegments = value . Split ( '.' , StringSplitOptions . RemoveEmptyEntries ) ;
1818
19- if ( int . TryParse ( res , out var result ) )
19+ if ( ! int . TryParse ( versionSegments [ 0 ] , out var majorVersion )
20+ || ! int . TryParse ( versionSegments [ 1 ] , out var minorVersion ) )
2021 {
21- if ( result is >= 2 and < 3 )
22- {
23- return OpenApiSpecVersion . OpenApi2_0 ;
24- }
22+ throw new InvalidOperationException ( "Invalid version format. Please provide a valid OpenAPI version (e.g., 2.0, 3.0, 3.1)." ) ;
2523 }
2624
27- return OpenApiSpecVersion . OpenApi3_0 ; // default
25+ // Check for specific version matches
26+ if ( majorVersion == 2 )
27+ {
28+ return OpenApiSpecVersion . OpenApi2_0 ;
29+ }
30+ else if ( majorVersion == 3 && minorVersion == 0 )
31+ {
32+ return OpenApiSpecVersion . OpenApi3_0 ;
33+ }
34+ else if ( majorVersion == 3 && minorVersion == 1 )
35+ {
36+ return OpenApiSpecVersion . OpenApi3_1 ;
37+ }
38+
39+ return OpenApiSpecVersion . OpenApi3_1 ; // default
2840 }
2941 }
3042}
0 commit comments