Imgur.API.JsonConverters.EpochTimeConverter.ReadJson C# (CSharp) Method

ReadJson() public method

Reads the JSON representation of the object.
public ReadJson ( JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer ) : object
reader Newtonsoft.Json.JsonReader The Newtonsoft.Json.JsonReader to read from.
objectType System.Type Type of the object.
existingValue object The existing value of object being read.
serializer Newtonsoft.Json.JsonSerializer The calling serializer.
return object
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
            JsonSerializer serializer)
        {
            if (reader.TokenType != JsonToken.Integer)
                throw new InvalidCastException("TokenType must be of type Integer.");

            var time = (long) reader.Value;

            var date = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(time);
            return new DateTimeOffset(date);
        }

Usage Example

        public void ReadJson_ThrowsInvalidCastException(string data)
        {
            var converter = new EpochTimeConverter();

            var reader = new JsonTextReader(new StringReader(data));
            reader.Read();
            var serializer = new JsonSerializer();

            var exception = Record.Exception(() => converter.ReadJson(reader, typeof(DateTimeOffset), null, serializer));
            Assert.NotNull(exception);
            Assert.IsType<InvalidCastException>(exception);
        }
All Usage Examples Of Imgur.API.JsonConverters.EpochTimeConverter::ReadJson