public async Task<IHttpActionResult> PutDeviceMetadata(string id, [FromBody] DeviceMetadata metadata) { if (metadata == null) { return BadRequest("metadata is null"); } if (!ModelState.IsValid) { return BadRequest(ModelState); } DeviceInfo info = await _registry.FindAsync(id); if (info == null) { info = new DeviceInfo { DeviceId = id, Status = DeviceStateConstants.RegisteredState, Metadata = metadata }; await _registry.AddOrUpdateAsync(info); return CreatedAtRoute("DefaultApi", new { id = id }, info); } else { info.Metadata = metadata; await _registry.AddOrUpdateAsync(info); return Ok(info); } }
public async Task<IHttpActionResult> ProvisionDevice([FromBody] Device device) { if (device == null) { return BadRequest("device is null"); } if (!ModelState.IsValid) { return BadRequest(ModelState); } var info = new DeviceInfo { DeviceId = device.DeviceId, Status = "provisioned" }; await _registry.AddOrUpdate(info); var token = await _provisioner.GetTokenAsync(device.DeviceId); var endpoint = new DeviceEndpoint { Uri = _provisioner.EndpointUri.AbsoluteUri, EventHubName = _provisioner.EventHubName, AccessToken = token }; return Ok(endpoint); }
public DeviceInfoEntity(DeviceInfo deviceInfo) { this.PartitionKey = deviceInfo.DeviceId; this.RowKey = deviceInfo.DeviceId; this.Status = deviceInfo.Status; if (deviceInfo.Metadata != null) { this.Building = deviceInfo.Metadata.Building; this.Room = deviceInfo.Metadata.Room; } }
public async Task RestoresDeviceIfRevoked() { string deviceId = "1"; DeviceInfo info = new DeviceInfo { DeviceId = deviceId, Status = DeviceStateConstants.RevokedState }; _registry.Setup(x => x.FindAsync(deviceId)) .ReturnsAsync(info); IHttpActionResult actionResult = await _controller.ProvisionDevice(deviceId); _tokenProvider.Verify(x => x.RestoreDeviceAsync(deviceId)); }
public async Task ReturnsDeviceInfo() { string deviceId = "1"; DeviceInfo info = new DeviceInfo { DeviceId = deviceId, Status = DeviceStateConstants.RegisteredState }; _registry.Setup(x => x.FindAsync(deviceId)) .ReturnsAsync(info); IHttpActionResult actionResult = await _controller.RevokeDevice(deviceId); var contentResult = actionResult as OkNegotiatedContentResult<DeviceInfo>; Assert.NotNull(contentResult); Assert.NotNull(contentResult.Content); }
public async Task ReturnsToken() { string deviceId = "1"; DeviceInfo info = new DeviceInfo { DeviceId = deviceId, Status = DeviceStateConstants.RegisteredState }; _registry.Setup(x => x.FindAsync(deviceId)) .ReturnsAsync(info); IHttpActionResult actionResult = await _controller.ProvisionDevice(deviceId); var contentResult = actionResult as OkNegotiatedContentResult<DeviceEndpoint>; Assert.NotNull(contentResult); Assert.NotNull(contentResult.Content); Assert.Equal(TOKEN, contentResult.Content.AccessToken); }
public Task<bool> AddOrUpdate(DeviceInfo info) { var entity = new DeviceInfoEntity(info); _table.Execute(TableOperation.InsertOrReplace(entity)); return Task.FromResult(true); }