/// <exclude/>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            TrailTheme trailTheme = (TrailTheme)value;

            JObject jo = JObject.FromObject(trailTheme);

            jo.WriteTo(writer);
        }
        /// <exclude/>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            TrailTheme result = null;

            if (reader.TokenType == JsonToken.StartArray)
            {
                reader.Read();

                if (reader.TokenType == JsonToken.EndArray)
                {
                    return(result);
                }

                return(result);
            }

            JToken jt = JToken.Load(reader);

            result = jt.ToObject <TrailTheme>();

            return(result);
        }