Exemple #1
0
        public async Task <IHttpActionResult> ProvisionDevice(string deviceId)
        {
            var info = await _registry.FindAsync(deviceId);

            if (info == null)
            {
                return(NotFound());
            }

            // If the device was revoked, restore it.
            if (info.Status.Equals(DeviceStateConstants.RevokedState, StringComparison.Ordinal))
            {
                await _provisioner.RestoreDeviceAsync(deviceId);
            }

            var token = await _provisioner.GetTokenAsync(deviceId);

            var endpoint = new DeviceEndpoint
            {
                Uri          = _provisioner.EndpointUri.AbsoluteUri,
                EventHubName = _provisioner.EventHubName,
                AccessToken  = token
            };

            // Update registry with new provisioning state.
            info.Status = DeviceStateConstants.ProvisionedState;
            await _registry.AddOrUpdateAsync(info);

            return(Ok(endpoint));
        }
Exemple #2
0
        public async Task <IHttpActionResult> GetDeviceMetadata(string id)
        {
            var info = await _registry.FindAsync(id);

            if (info == null)
            {
                return(NotFound());
            }

            return(Ok(info));
        }