public async Task UpdateUnitState(UpdateUnitStateModel updateUnitState) { var model = new MapsStateSetUpdateRequest { States = new List <MapsStateSetUpdate> { new MapsStateSetUpdate { KeyName = "occupied", Value = updateUnitState.Flashing, EventTimestamp = DateTime.Now } } }; var body = JsonConvert.SerializeObject(model); Console.WriteLine($"UpdateUnitState: {body}"); var content = new ByteArrayContent(Encoding.UTF8.GetBytes(body)); var queryString = HttpUtility.ParseQueryString(string.Empty); queryString["subscription-key"] = _azureOptions.Maps.Key; queryString["api-version"] = _azureOptions.Maps.ApiVersion; queryString["datasetID"] = _azureOptions.Maps.DatasetId; queryString["statesetID"] = _azureOptions.Maps.StateSetId; queryString["featureID"] = updateUnitState.Unit; var requestUri = $"{_azureOptions.Maps.ApiEndpoint}/featureState/state?{queryString}"; Console.WriteLine($"RequestUri: {requestUri}"); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var responseMessage = await Client.PostAsync(requestUri, content); Console.WriteLine($"Response status code: {responseMessage.StatusCode}"); Console.WriteLine($"Response: {await responseMessage.Content.ReadAsStringAsync()}"); responseMessage.EnsureSuccessStatusCode(); }
public async Task <ActionResult> UpdateUnitState([FromBody] UpdateUnitStateModel updateUnitState) { await _azureMapsApiService.UpdateUnitState(updateUnitState); return(NoContent()); }