Esempio n. 1
0
        /// <summary>
        /// Remove the specified object from the bridge.
        /// </summary>
        /// <typeparam name="T">HueObject (Light,Group,Sensor,Rule,Schedule,Scene)</typeparam>
        /// <param name="obj">Object to modify</param>
        /// <returns>HueObject (Light,Group,Sensor,Rule,Schedule,Scene)</returns>
        public bool RemoveObject(string Id, HueObjectType type)
        {
            string typename = type.ToString();
            string url      = BridgeUrl + $@"/{typename}/{Id}";

            CommResult comres;

            if (!Virtual)
            {
                comres = Comm.SendRequest(new Uri(url), WebRequestType.Delete);
                if (comres.Status == WebExceptionStatus.Success)
                {
                    return(LastCommandMessages.Success);
                }
            }
            else
            {
                LastCommandMessages.AddMessage(new Success()
                {
                    Address = url, value = $"Deleted Virtual object : {Id},{type.ToString()}"
                });
                return(LastCommandMessages.Success);
            }

            ProcessCommandFailure(url, comres.Status);
            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// Remove the specified object from the bridge.
        /// </summary>
        /// <typeparam name="T">HueObject (Light,Group,Sensor,Rule,Schedule,Scene)</typeparam>
        /// <param name="obj">Object to modify</param>
        /// <returns>HueObject (Light,Group,Sensor,Rule,Schedule,Scene)</returns>
        public bool RemoveObject(string Id, HueObjectType type)
        {
            string typename = type.ToString();
            string url      = BridgeUrl + $@"/{typename}/{Id}";

            HttpResult comres;

            if (!Virtual)
            {
                comres = HueHttpClient.SendRequest(new Uri(url), WebRequestType.Delete);
                if (comres.Success)
                {
                    return(LastCommandMessages.Success);
                }
            }
            else
            {
                LastCommandMessages.AddMessage(new Success()
                {
                    Address = url, value = $"Deleted Virtual object : {Id},{type.ToString()}"
                });
                return(LastCommandMessages.Success);
            }

            BridgeNotResponding?.Invoke(this, new BridgeNotRespondingEventArgs(this, url, WebExceptionStatus.NameResolutionFailure));
            return(false);
        }
Esempio n. 3
0
        public static HueObjectBase CreateHueObject(JObject jObject, string id, HueConnection hueConnection, HueObjectType type)
        {
            if (jObject["error"] != null)
            {
                return(new Error(jObject));
            }

            switch (type)
            {
            case HueObjectType.Light:
                return(new Light(jObject, hueConnection, id));

            case HueObjectType.Client:
                return(new Client(jObject, id));

            case HueObjectType.Group:
                return(new Group(jObject, hueConnection, id));

            case HueObjectType.Schedule:
                return(new Schedule(jObject, hueConnection, id));

            default:
                return(new Error(jObject));
            }
        }
Esempio n. 4
0
        public static HueObjectBase CreateHueObject(JObject jObject, HueConnection hueConnection, HueObjectType type)
        {
            if (jObject["error"] != null)
            {
                return(new Error(jObject));
            }

            switch (type)
            {
            case HueObjectType.Success:
                return(new Success(jObject));

            case HueObjectType.Bridge:
                return(new Bridge(jObject, hueConnection));

            case HueObjectType.BridgeConfig:
                return(new BridgeConfig(jObject));

            case HueObjectType.BridgeSoftwareUpdate:
                return(new BridgeSoftwareUpdate(jObject));

            case HueObjectType.Light:
                return(new HueObjectCollectionBase <Light>(jObject, hueConnection));

            case HueObjectType.LastAddedLights:
                return(new LastAddedLights(jObject));

            case HueObjectType.LightState:
                return(new State(jObject));

            case HueObjectType.Group:
                return(new HueObjectCollectionBase <Group>(jObject, hueConnection));

            case HueObjectType.Schedule:
                return(new HueObjectCollectionBase <Schedule>(jObject, hueConnection));

            case HueObjectType.Command:
                return(new Command(jObject));

            default:
                throw new ArgumentOutOfRangeException(String.Format(Resources.NoObjectConstructorForType, type));
            }
        }
Esempio n. 5
0
        private static HueObjectBase CreateHueObject(JArray jArray, HueConnection hueConnection, HueObjectType type)
        {
            if (jArray[0]["error"] != null)
            {
                type = HueObjectType.Error;
            }

            switch (type)
            {
            case HueObjectType.Success:
                return(new HueObjectCollectionBase <Success>(jArray, hueConnection));

            case HueObjectType.Error:
                return(new HueObjectCollectionBase <Error>(jArray, hueConnection));

            case HueObjectType.Bridge:
                return(new HueObjectCollectionBase <Bridge>(jArray, hueConnection));

            default:
                throw new ArgumentOutOfRangeException(String.Format(Resources.NoCollectionConstructorForType, type));
            }
        }
Esempio n. 6
0
        public static HueObjectBase CreateHueObject(string myString, HueConnection hueConnection, HueObjectType type)
        {
            var myObject = myString.JSONParse();

            if (myObject is JObject)
            {
                return(CreateHueObject(myObject as JObject, hueConnection, type));
            }

            if (myObject is JArray)
            {
                return(CreateHueObject(myObject as JArray, hueConnection, type));
            }

            throw new ArgumentException(Resources.NoObjectConstructorForType, myObject.GetType().ToString());
        }
Esempio n. 7
0
 public static HueObjectBase CreateHueObject(string myString, HueObjectType type)
 {
     return(CreateHueObject(myString, null, type));
 }