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)); }
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); }
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)); }
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>(); }
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)); }
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(); } }
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); }
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); }
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> >(); } }
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(); }