1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-09 17:06:19 +00:00

updated version, small fixes

This commit is contained in:
JKorf 2018-08-08 16:42:09 +02:00
parent c061c31c74
commit c5ee620857
4 changed files with 23 additions and 6 deletions

View File

@ -1,4 +1,5 @@
using System;
using System.Globalization;
using System.Reflection;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@ -41,9 +42,19 @@ namespace CryptoExchange.Net.Converters
if (((JToken)value).Type == JTokenType.Null)
value = null;
if ((property.PropertyType == typeof(decimal)
|| property.PropertyType == typeof(decimal?))
&& value.ToString().Contains("e"))
{
if (decimal.TryParse(value.ToString(), NumberStyles.Float, CultureInfo.InvariantCulture, out var dec))
property.SetValue(result, dec);
}
else
{
property.SetValue(result, value == null ? null : Convert.ChangeType(value, property.PropertyType));
}
}
}
return result;
}

View File

@ -13,6 +13,9 @@ namespace CryptoExchange.Net.Converters
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.Value.GetType() == typeof(double))
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds((double)reader.Value);
var t = double.Parse(reader.Value.ToString(), CultureInfo.InvariantCulture);
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(t);
}

View File

@ -7,7 +7,7 @@
<PropertyGroup>
<PackageId>CryptoExchange.Net</PackageId>
<Authors>JKorf</Authors>
<PackageVersion>0.0.33</PackageVersion>
<PackageVersion>0.0.34</PackageVersion>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageProjectUrl>https://github.com/JKorf/CryptoExchange.Net</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/JKorf/CryptoExchange.Net/blob/master/LICENSE</PackageLicenseUrl>

View File

@ -26,7 +26,7 @@ namespace CryptoExchange.Net
protected AuthenticationProvider authProvider;
private List<IRateLimiter> rateLimiters;
private static JsonSerializer serializer = JsonSerializer.Create(new JsonSerializerSettings()
private static JsonSerializer defaultSerializer = JsonSerializer.Create(new JsonSerializerSettings()
{
DateTimeZoneHandling = DateTimeZoneHandling.Utc
});
@ -202,8 +202,11 @@ namespace CryptoExchange.Net
return new ServerError(error);
}
protected CallResult<T> Deserialize<T>(string data, bool checkObject = true) where T : class
protected CallResult<T> Deserialize<T>(string data, bool checkObject = true, JsonSerializer serializer = null) where T : class
{
if (serializer == null)
serializer = defaultSerializer;
try
{
var obj = JToken.Parse(data);