2
2
// Licensed under the MIT license.
3
3
4
4
using System ;
5
- using System . Linq ;
6
5
7
6
namespace Microsoft . OpenApi . Hidi
8
7
{
@@ -14,17 +13,30 @@ public static OpenApiSpecVersion TryParseOpenApiSpecVersion(string value)
14
13
{
15
14
throw new InvalidOperationException ( "Please provide a version" ) ;
16
15
}
17
- var res = value . Split ( '.' , StringSplitOptions . RemoveEmptyEntries ) . FirstOrDefault ( ) ;
16
+ // Split the version string by the dot
17
+ var versionSegments = value . Split ( '.' , StringSplitOptions . RemoveEmptyEntries ) ;
18
18
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 ) )
20
21
{
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)." ) ;
25
23
}
26
24
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
28
40
}
29
41
}
30
42
}
0 commit comments