public async Task SetLightsStateAsync(Models.LightObject.StateObject state, params string[] names) { await foreach (var(id, _) in GetLightsByNamesAsync(names)) { await _client.SetLightStateAsync(id, state); } }
public async Task SetGroupsStateAsync(Models.LightObject.StateObject state, params string[] names) { await foreach (var(_, group) in GetGroupsByNamesAsync(names)) { foreach (var id in group.lights !) { await _client.SetLightStateAsync(id, state); } } }
public async Task SetLightStateAsync(string groupName, string lightName, Models.LightObject.StateObject state) { await foreach (var(_, group) in from kvp in _client.GetGroupsAsync() let @group = kvp.Value where @group.name?.Equals(groupName, StringComparison.InvariantCultureIgnoreCase) == true select kvp) { foreach (var lightId in group.lights !) { var light = await _client.GetLightAsync(lightId); if (light.name?.Equals(lightName, StringComparison.InvariantCultureIgnoreCase) != true) { continue; } await _client.SetLightStateAsync(lightId, state); } } }