|
2 | 2 | // Licensed under the MIT license. |
3 | 3 |
|
4 | 4 | using System; |
| 5 | +using System.Globalization; |
5 | 6 | using Microsoft.OpenApi.Any; |
6 | | -using Microsoft.OpenApi.Exceptions; |
7 | 7 | using Microsoft.OpenApi.Readers.Exceptions; |
8 | 8 | using SharpYaml.Serialization; |
9 | 9 |
|
@@ -52,28 +52,26 @@ public override IOpenApiAny CreateAny() |
52 | 52 | return new OpenApiBoolean(false); |
53 | 53 | } |
54 | 54 |
|
55 | | - if (int.TryParse(value, out var intValue)) |
| 55 | + // The NumberStyles below are the default ones based on |
| 56 | + // https://docs.microsoft.com/en-us/dotnet/api/?view=netframework-4.7.2 |
| 57 | + if (int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var intValue)) |
56 | 58 | { |
57 | 59 | return new OpenApiInteger(intValue); |
58 | 60 | } |
59 | 61 |
|
60 | | - if (long.TryParse(value, out var longValue)) |
| 62 | + if (long.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var longValue)) |
61 | 63 | { |
62 | | - return |
63 | | - new OpenApiLong( |
64 | | - longValue); |
| 64 | + return new OpenApiLong(longValue); |
65 | 65 | } |
66 | 66 |
|
67 | | - if (double.TryParse(value, out var dblValue)) |
| 67 | + if (double.TryParse(value, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out var doubleValue)) |
68 | 68 | { |
69 | | - return |
70 | | - new OpenApiDouble( |
71 | | - dblValue); // Note(darrmi): This may be better as decimal. Further investigation required. |
| 69 | + return new OpenApiDouble(doubleValue); |
72 | 70 | } |
73 | 71 |
|
74 | | - if (DateTimeOffset.TryParse(value, out var datetimeValue)) |
| 72 | + if (DateTimeOffset.TryParse(value, CultureInfo.InvariantCulture, DateTimeStyles.None, out var dateTimeValue)) |
75 | 73 | { |
76 | | - return new OpenApiDateTime(datetimeValue); |
| 74 | + return new OpenApiDateTime(dateTimeValue); |
77 | 75 | } |
78 | 76 |
|
79 | 77 | // if we can't identify the type of value, return it as string. |
|
0 commit comments