public async Task CreateAndDelete() { var all = await localHueClient.GetZones(); var allLights = await localHueClient.GetLights(); var firstLight = allLights.Data.First(); var existing = all.Data.Where(x => x.Metadata?.Name == "unittest").FirstOrDefault(); Guid?deleteId = null; if (existing == null) { var req = new CreateZone() { Type = "zone", Metadata = new Models.Metadata() { Name = "unittest", Archetype = "other" } }; //req.Children.Add(new ResourceIdentifier //{ // Rid = firstLight.Id, // Rtype = firstLight.Type! //}); var result = await localHueClient.CreateZone(req); Assert.IsNotNull(result); Assert.IsFalse(result.HasErrors); deleteId = result.Data.First().Rid; } if (deleteId.HasValue) { var deleteResult = await localHueClient.DeleteZone(deleteId.Value); Assert.IsNotNull(deleteResult); Assert.IsFalse(deleteResult.HasErrors); Assert.IsTrue(deleteResult.Data.Count == 1); Assert.AreEqual(deleteId.Value, deleteResult.Data.First().Rid); } }
public async Task <Zone> CreateZoneAsync(CreateZone zone, CancellationToken cancellationToken = default) { var json = JsonConvert.SerializeObject(zone, this._jsonSerializerSettings); var responseMessage = await this._httpClient.PostAsync($"v1/zones", new StringContent(json), cancellationToken); if (!responseMessage.IsSuccessStatusCode) { var errorMessage = await responseMessage.Content.ReadAsStringAsync(); throw new HttpException($"{responseMessage.IsSuccessStatusCode} {errorMessage}"); } json = await responseMessage.Content.ReadAsStringAsync(); var changeResponse = JsonConvert.DeserializeObject <ChangeZoneResponse>(json, this._jsonSerializerSettings); return(changeResponse.Zone); }
public Task <HuePostResponse> CreateZone(CreateZone data) => HuePostRequest(ZoneUrl, data);