コード例 #1
0
 /// <summary>
 /// Used internally by the SDK to create a new instance of the DeviceRegistrationResult class.
 /// This constructor is exposed to allow serialization and unit testing of applications using this SDK.
 /// </summary>
 public DeviceRegistrationResult(
     string registrationId,
     DateTime?createdDateTimeUtc,
     string assignedHub,
     string deviceId,
     ProvisioningRegistrationStatusType status,
     ProvisioningRegistrationSubstatusType substatus,
     string generationId,
     DateTime?lastUpdatedDateTimeUtc,
     int errorCode,
     string errorMessage,
     string etag)
 {
     RegistrationId         = registrationId;
     CreatedDateTimeUtc     = createdDateTimeUtc;
     AssignedHub            = assignedHub;
     DeviceId               = deviceId;
     Status                 = status;
     Substatus              = substatus;
     GenerationId           = generationId;
     LastUpdatedDateTimeUtc = lastUpdatedDateTimeUtc;
     ErrorCode              = errorCode;
     ErrorMessage           = errorMessage;
     Etag = etag;
 }
コード例 #2
0
 /// <summary>
 /// Used internally by the SDK to create a new instance of the DeviceRegistrationResult class.
 /// This constructor is exposed to allow serialization and unit testing of applications using this SDK.
 /// </summary>
 public DeviceRegistrationResult(
     string registrationId,
     DateTime?createdDateTimeUtc,
     string assignedHub,
     string deviceId,
     ProvisioningRegistrationStatusType status,
     string generationId,
     DateTime?lastUpdatedDateTimeUtc,
     int errorCode,
     string errorMessage,
     string etag)
     : this(
         registrationId,
         createdDateTimeUtc,
         assignedHub,
         deviceId,
         status,
         ProvisioningRegistrationSubstatusType.InitialAssignment,
         generationId,
         lastUpdatedDateTimeUtc,
         errorCode,
         errorMessage,
         etag)
 {
 }
コード例 #3
0
ファイル: IoTDevice.cs プロジェクト: woodp/iot-guidance
 protected void InitializeDevice(DeviceRegistrationResult result)
 {
     this.deviceId           = result.DeviceId;
     this.assignedIoTHub     = result.AssignedHub;
     this.registrationStatus = result.Status;
     this.ready = this.registrationStatus == ProvisioningRegistrationStatusType.Assigned;
 }
        private async Task <ProvisioningRegistrationStatusType> RunDeviceProvisioning()
        {
            ProvisioningRegistrationStatusType registrationStatus = ProvisioningRegistrationStatusType.Failed;
            string registrationId = Dns.GetHostName().ToLower();

            using (var security = new SecurityProviderTpmHsm(registrationId))
                using (var transport = new ProvisioningTransportHandlerHttp())
                {
                    Logger.Log($"ProvisioningClient RegisterAsync({registrationId})... ", LoggingLevel.Verbose);
                    ProvisioningDeviceClient provClient =
                        ProvisioningDeviceClient.Create(GlobalDeviceEndpoint, s_idScope, security, transport);

                    try
                    {
                        DeviceRegistrationResult result = await provClient.RegisterAsync().ConfigureAwait(false);

                        Logger.Log($"ProvisioningClient RegisterAsync Result = {result.Status}", LoggingLevel.Verbose);
                        Logger.Log($"ProvisioningClient AssignedHub: {result.AssignedHub}; DeviceID: {result.DeviceId}", LoggingLevel.Information);

                        if (result.Status == ProvisioningRegistrationStatusType.Assigned)
                        {
                            // The symmetric key of the assigned device identity is stored in TPM (this is done in ProvisioningDeviceClient.RegisterAsync()),
                            // for this use case (DM sample), we will need to store some other connection properties
                            // such as device Id and IoT Hub hostname in TPM for later use to establish IoTHub connection
                            try
                            {
                                var tpmDevice = new TpmDevice();
                                await tpmDevice.SetConnectionInfoAsync(-1, result.AssignedHub, result.DeviceId);
                            }
                            catch (Exception ex)
                            {
                                Logger.Log($"SetConnectionInfoAsync Error: Fail to set service Url in TPM. Exception: {ex.Message}", LoggingLevel.Error);
                            }
                        }
                        registrationStatus = result.Status;
                    }
                    catch (Exception ex)
                    {
                        Logger.Log($"ProvisioningClient Exception: {ex.Message}", LoggingLevel.Error);
                    }
                }
            return(registrationStatus);
        }