Exemplo n.º 1
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value == typeof(TimerItemEntity))
            {
                // cast
                TimerItemEntity entity = (TimerItemEntity)value;

                // build
                ToObject(entity).WriteTo(writer);
            }
            else
            {
                // cast
                TimerItemEntity[] entities = (TimerItemEntity[])value;

                JObject[] objs = new JObject[entities.Length];

                for (int i = 0; i < objs.Length; i++)
                {
                    objs[i] = ToObject(entities[i]);
                }

                new JArray(objs).WriteTo(writer);
            }
        }
Exemplo n.º 2
0
        private JObject ToObject(TimerItemEntity entity)
        {
            JObject obj = new JObject();

            obj["type"] = entity.Type;

            if (entity.Type == "device")
            {
                obj["device_uuid"]         = entity.DeviceUUID;
                obj["service_uuid"]        = entity.ServiceUUID;
                obj["characteristic_uuid"] = entity.CharacteristicUUID;
            }

            if (entity.Type == "group")
            {
                obj["group_uuid"] = entity.GroupUUID;
            }

            return(obj);
        }
Exemplo n.º 3
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            // load next token
            JToken nextToken = JToken.Load(reader);

            if (nextToken.Type == JTokenType.Array)
            {
                JArray            arr      = (JArray)nextToken;
                TimerItemEntity[] entities = new TimerItemEntity[arr.Count];

                for (int i = 0; i < arr.Count; i++)
                {
                    entities[i] = FromObject((JObject)arr[i]);
                }

                return(entities);
            }

            // build
            return(FromObject((JObject)nextToken));
        }