1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-12-14 18:00:26 +00:00

Added resolver name to datetime/bool parser warnings

This commit is contained in:
Jkorf 2025-11-11 08:57:57 +01:00
parent 21872f818a
commit 4be986ebe7
3 changed files with 9 additions and 11 deletions

View File

@ -48,7 +48,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
if (string.IsNullOrEmpty(value)) if (string.IsNullOrEmpty(value))
{ {
if (typeToConvert == typeof(bool)) if (typeToConvert == typeof(bool))
LibraryHelpers.StaticLogger?.LogWarning("Received null bool value, but property type is not a nullable bool"); LibraryHelpers.StaticLogger?.LogWarning("Received null bool value, but property type is not a nullable bool. Resolver: {Resolver}", options.TypeInfoResolver?.GetType()?.Name);
return default; return default;
} }

View File

@ -40,7 +40,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
if (reader.TokenType == JsonTokenType.Null) if (reader.TokenType == JsonTokenType.Null)
{ {
if (typeToConvert == typeof(DateTime)) if (typeToConvert == typeof(DateTime))
LibraryHelpers.StaticLogger?.LogWarning("DateTime value of null, but property is not nullable"); LibraryHelpers.StaticLogger?.LogWarning("DateTime value of null, but property is not nullable. Resolver: {Resolver}", options.TypeInfoResolver?.GetType()?.Name);
return default; return default;
} }
@ -63,7 +63,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
return default; return default;
} }
return ParseFromString(stringValue!); return ParseFromString(stringValue!, options.TypeInfoResolver?.GetType()?.Name);
} }
else else
{ {
@ -112,9 +112,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
/// <summary> /// <summary>
/// Parse a string value to datetime /// Parse a string value to datetime
/// </summary> /// </summary>
/// <param name="stringValue"></param> public static DateTime ParseFromString(string stringValue, string? resolverName)
/// <returns></returns>
public static DateTime ParseFromString(string stringValue)
{ {
if (stringValue!.Length == 12 && stringValue.StartsWith("202")) if (stringValue!.Length == 12 && stringValue.StartsWith("202"))
{ {
@ -125,7 +123,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
|| !int.TryParse(stringValue.Substring(8, 2), out var hour) || !int.TryParse(stringValue.Substring(8, 2), out var hour)
|| !int.TryParse(stringValue.Substring(10, 2), out var minute)) || !int.TryParse(stringValue.Substring(10, 2), out var minute))
{ {
LibraryHelpers.StaticLogger?.LogWarning("Unknown DateTime format: " + stringValue); LibraryHelpers.StaticLogger?.LogWarning("Unknown DateTime format: {Value}. Resolver: {Resolver}", stringValue, resolverName);
return default; return default;
} }
return new DateTime(year, month, day, hour, minute, 0, DateTimeKind.Utc); return new DateTime(year, month, day, hour, minute, 0, DateTimeKind.Utc);
@ -138,7 +136,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
|| !int.TryParse(stringValue.Substring(4, 2), out var month) || !int.TryParse(stringValue.Substring(4, 2), out var month)
|| !int.TryParse(stringValue.Substring(6, 2), out var day)) || !int.TryParse(stringValue.Substring(6, 2), out var day))
{ {
LibraryHelpers.StaticLogger?.LogWarning("Unknown DateTime format: " + stringValue); LibraryHelpers.StaticLogger?.LogWarning("Unknown DateTime format: {Value}. Resolver: {Resolver}", stringValue, resolverName);
return default; return default;
} }
return new DateTime(year, month, day, 0, 0, 0, DateTimeKind.Utc); return new DateTime(year, month, day, 0, 0, 0, DateTimeKind.Utc);
@ -151,7 +149,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
|| !int.TryParse(stringValue.Substring(2, 2), out var month) || !int.TryParse(stringValue.Substring(2, 2), out var month)
|| !int.TryParse(stringValue.Substring(4, 2), out var day)) || !int.TryParse(stringValue.Substring(4, 2), out var day))
{ {
LibraryHelpers.StaticLogger?.LogWarning("Unknown DateTime format: " + stringValue); LibraryHelpers.StaticLogger?.LogWarning("Unknown DateTime format: {Value}. Resolver: {Resolver}", stringValue, resolverName);
return default; return default;
} }
return new DateTime(year + 2000, month, day, 0, 0, 0, DateTimeKind.Utc); return new DateTime(year + 2000, month, day, 0, 0, 0, DateTimeKind.Utc);
@ -180,7 +178,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
|| !int.TryParse(values[1], out var month) || !int.TryParse(values[1], out var month)
|| !int.TryParse(values[2], out var day)) || !int.TryParse(values[2], out var day))
{ {
LibraryHelpers.StaticLogger?.LogWarning("Unknown DateTime format: " + stringValue); LibraryHelpers.StaticLogger?.LogWarning("Unknown DateTime format: {Value}. Resolver: {Resolver}", stringValue, resolverName);
return default; return default;
} }

View File

@ -391,7 +391,7 @@ namespace CryptoExchange.Net.Testing.Comparers
} }
else if (objectValue is DateTime time) else if (objectValue is DateTime time)
{ {
if (!string.IsNullOrEmpty(stringValue) && time != DateTimeConverter.ParseFromString(stringValue!)) if (!string.IsNullOrEmpty(stringValue) && time != DateTimeConverter.ParseFromString(stringValue!, null))
throw new Exception($"{method}: {property} not equal: {stringValue} vs {time}"); throw new Exception($"{method}: {property} not equal: {stringValue} vs {time}");
} }
else if (objectValue is bool bl) else if (objectValue is bool bl)