AdlsDotNetSDK/Serialization/ExpirationDateTimeConverter.cs (31 lines of code) (raw):

using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; namespace Microsoft.Azure.DataLake.Store.Serialization { /// <summary> /// This is separate from ServerDateTimeConverter because for expiration time we need to return null if expiration is 0 /// </summary> internal class ExpirationDateTimeConverter : DateTimeConverterBase { public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType != JsonToken.Integer) { throw new Exception( String.Format("Unexpected token parsing date. Expected Integer, got {0}.", reader.TokenType)); } var ticks = (long)reader.Value; if (ticks <= 0) { return null; } else { return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Add(new TimeSpan(ticks * 10000)); } } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { throw new NotImplementedException(); } } }