private async Task InitializeDeviceClient(string connectionString)
        {
            _deviceClient = DeviceClient.CreateFromConnectionString(connectionString, TransportType.Http1);
            var iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString);
            DeviceClientPanel.Children.Add(new TextBlock() { Text = "Host: " + iotHubConnectionStringBuilder.HostName });
            DeviceClientPanel.Children.Add(new TextBlock() { Text = "Device: " + iotHubConnectionStringBuilder.DeviceId });

            Message receivedMessage;
            string messageData;

            while (true)
            {
                receivedMessage = await _deviceClient.ReceiveAsync();

                if (receivedMessage != null)
                {
                    messageData = Encoding.ASCII.GetString(receivedMessage.GetBytes());
                    var updateAccessKeyRequest = JsonConvert.DeserializeObject<UpdateAccessKeyRequest>(messageData);
                    if (updateAccessKeyRequest != null)
                    {
                        DeviceClientPanel.Children.Add(new TextBlock() { Text = "Update Access Key received" });

                        UpdateConnectionString(updateAccessKeyRequest.AccessKey);
                        await _deviceClient.CloseAsync();
                        _deviceClient = DeviceClient.CreateFromConnectionString(GetConnectionString(), TransportType.Http1);
                        await _deviceClient.CompleteAsync(receivedMessage);
                    }
                }
            }

        }
Exemplo n.º 2
0
 public async Task CloseAsync()
 {
     await deviceClient.CloseAsync();
 }
 public Task CloseAsync()
 {
     return(_deviceClient.CloseAsync());
 }