Example #1
0
        public async Task <HueObjectBase> LoginAsync(string userID)
        {
            HueActionDelegate method = async delegate
            {
                string returnString = await Context.GetAsync(String.Format(Resources.ConfigURI, InternalIPAddress, userID));

                HueObjectBase returnObject = HueObjectFactory.CreateHueObject(returnString, HueObjectType.BridgeConfig);

                var bridgeConfig = returnObject as BridgeConfig;
                if (bridgeConfig != null)
                {
                    if (bridgeConfig.WhiteList.Count > 0)
                    {
                        Context.LoggedInID = userID;
                        var success = new HueObjectCollectionBase <Success>();
                        success.Dictionary.Add("1", new Success("", String.Format("Logged in with id {0}", userID)));
                        return(success);
                    }

                    var error = new HueObjectCollectionBase <Error>();
                    error.Dictionary.Add("1", new Error(-1, returnString, String.Format("unable to login with id {0}", userID)));
                    return(error);
                }

                return(returnObject);
            };

            return(await Context.ConnectionWrapperAsync(method));
        }
Example #2
0
        public async Task <HueObjectBase> GetLightsFullAsync()
        {
            HueObjectBase lights = await GetLightsAsync();

            var lightsList = lights as HueObjectCollectionBase <Light>;

            if (lightsList != null)
            {
                var lightList2 = (from l in lightsList.Dictionary.Values select l).ToList();

                foreach (Light light in lightList2)
                {
                    HueObjectBase lightDetail = await light.GetAttributesAsync();

                    var detail = lightDetail as Light;
                    if (detail != null)
                    {
                        lightsList.Dictionary[light.ID] = detail;
                    }
                }

                _lights = lightsList;
            }
            return(lights);
        }
Example #3
0
        public async Task <HueObjectBase> GetGroupsFullAsync()
        {
            HueActionDelegate method = async delegate
            {
                string returnString = await Context.GetAsync(Context.GroupsAllURI());

                var groups = HueObjectFactory.CreateHueObject(returnString, Context, HueObjectType.Group) as HueObjectCollectionBase <Group>;

                if (groups != null)
                {
                    var groups2 = (from l in groups.Dictionary.Values select l).ToList();

                    foreach (Group group in groups2)
                    {
                        HueObjectBase groupDetail = await group.GetAttributesAsync();

                        var detail = groupDetail as Group;
                        if (detail != null)
                        {
                            groups.Dictionary[group.ID] = detail;
                        }
                    }

                    _groups = groups;
                }
                return(groups);
            };

            return(await Context.LoginWrapperAsync(method));
        }
Example #4
0
        public Bridge(JObject jObject, HueConnection hueConnection) : base(hueConnection, (string)jObject["id"])
        {
            InternalIPAddress = (string)jObject["internalipaddress"];
            MACAddress        = (string)jObject["macaddress"];

            _groups = new HueObjectCollectionBase <Group>();
            _lights = new HueObjectCollectionBase <Light>();
        }
Example #5
0
        internal async Task <HueObjectBase> ThrottleWrapperAsync(QueueItem item)
        {
            if (Throttle)
            {
                _queue.EnqueueSync(item);

                var success = new HueObjectCollectionBase <Success>();
                success.AutoAdd(new Success(item.Path, "Item Queued Successfully"));
                return(success);
            }

            return(await LoginWrapperAsync(item.Action));
        }
Example #6
0
        public async Task CreateGroup(string groupName, IEnumerable <String> lightIDs)
        {
            var rv = await _bridge.CreateGroupAsync(groupName, lightIDs);

            if (rv.IsError())
            {
                HueObjectCollectionBase <Error> errors = rv.To <Error>();

                await _messageHandler.GetResponseAsync("Error", errors.FirstOrDefault().Description, MessageBoxButtons.OK);
            }
            else
            {
                SelectedGroup = null;
                ExecuteGetGroupsAsync();
            }
        }
Example #7
0
        public async Task <HueObjectBase> GetGroupsAsync()
        {
            HueActionDelegate method = async delegate
            {
                string returnString = await Context.GetAsync(Context.GroupsAllURI());

                return(HueObjectFactory.CreateHueObject(returnString, Context, HueObjectType.Group));
            };

            var rv = await Context.LoginWrapperAsync(method);

            var groups = rv as HueObjectCollectionBase <Group>;

            if (groups != null)
            {
                _groups = groups;
            }
            return(rv);
        }
Example #8
0
        public async Task <HueObjectBase> GetLightsAsync()
        {
            HueActionDelegate method = async delegate
            {
                string returnString = await Context.GetAsync(string.Format(Resources.LightsAllURI, InternalIPAddress, Context.LoggedInID));

                return(HueObjectFactory.CreateHueObject(returnString, Context, HueObjectType.Light));
            };

            var rv = await Context.LoginWrapperAsync(method);

            var lights = rv as HueObjectCollectionBase <Light>;

            if (lights != null)
            {
                _lights = lights;
            }
            return(rv);
        }
Example #9
0
        public Group(JObject jObject, HueConnection context, string id) : base(context, id)
        {
            Name = (string)jObject["name"];

            if (jObject["action"] != null)
            {
                var lightState = HueObjectFactory.CreateHueObject(jObject["action"].ToString(), HueObjectType.LightState) as State;
                if (lightState != null)
                {
                    State = lightState;
                }
            }

            Lights = new HueObjectCollectionBase <Light>();

            if (jObject["lights"] != null)
            {
                LightsIDs = jObject["lights"].ToObject <List <string> >();
            }
        }
Example #10
0
        private async void ExecuteDeleteGroupAsync()
        {
            IsDeletingGroup = true;
            DeleteGroupCommand.RaiseCanExecuteChanged();

            var rv = await _bridge.DeleteGroupAsync(SelectedGroup.ID);

            if (rv.IsError())
            {
                HueObjectCollectionBase <Error> errors = rv.To <Error>();

                await _messageHandler.GetResponseAsync("Error", errors.FirstOrDefault().Description, MessageBoxButtons.OK);
            }
            else
            {
                ExecuteGetGroupsAsync();
            }

            IsDeletingGroup = false;
            DeleteGroupCommand.RaiseCanExecuteChanged();
        }