|
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