From 1fcb15472f977229644e03ae367610eaad0b6e94 Mon Sep 17 00:00:00 2001 From: JKorf Date: Fri, 8 Jun 2018 13:33:50 +0200 Subject: [PATCH] Added UTC converter, added UTC DateTimeZoneHandling --- .../Converters/UTCDateTimeConverter.cs | 26 +++++++++++++++++++ CryptoExchange.Net/ExchangeClient.cs | 7 ++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 CryptoExchange.Net/Converters/UTCDateTimeConverter.cs diff --git a/CryptoExchange.Net/Converters/UTCDateTimeConverter.cs b/CryptoExchange.Net/Converters/UTCDateTimeConverter.cs new file mode 100644 index 0000000..da842aa --- /dev/null +++ b/CryptoExchange.Net/Converters/UTCDateTimeConverter.cs @@ -0,0 +1,26 @@ +using System; +using Newtonsoft.Json; + +namespace CryptoExchange.Net.Converters +{ + public class UTCDateTimeConverter: JsonConverter + { + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + writer.WriteValue(JsonConvert.SerializeObject(value)); + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + if (reader.Value == null) + return null; + + return DateTime.SpecifyKind((DateTime)reader.Value, DateTimeKind.Utc); + } + + public override bool CanConvert(Type objectType) + { + return objectType == typeof(DateTime) || objectType == typeof(DateTime?); + } + } +} diff --git a/CryptoExchange.Net/ExchangeClient.cs b/CryptoExchange.Net/ExchangeClient.cs index d6189e0..15a34dc 100644 --- a/CryptoExchange.Net/ExchangeClient.cs +++ b/CryptoExchange.Net/ExchangeClient.cs @@ -24,6 +24,11 @@ namespace CryptoExchange.Net protected AuthenticationProvider authProvider; private List rateLimiters; + + private static JsonSerializer serializer = JsonSerializer.Create(new JsonSerializerSettings() + { + DateTimeZoneHandling = DateTimeZoneHandling.Utc + }); protected ExchangeClient(ExchangeOptions exchangeOptions, AuthenticationProvider authenticationProvider) { @@ -208,7 +213,7 @@ namespace CryptoExchange.Net } } - return new CallResult(obj.ToObject(), null); + return new CallResult(obj.ToObject(serializer), null); } catch (JsonReaderException jre) {