public static int Main(string[] args) { ReadJsonConfiguration(); var db = new DataStorage(); var secureConnection = db.Read("ConnectionString"); DevicePortalInfoModel o = JsonConvert.DeserializeObject <DevicePortalInfoModel>(secureConnection); DeviceAuthenticationWithRegistrySymmetricKey auth = (DeviceAuthenticationWithRegistrySymmetricKey)o.Auth; string iotHub = (string)o.Host; DPSDeviceClient sample = null; Console.WriteLine($"Connecting to IoT Hub with AuthenticationMethod:{iotHub}"); sample = new DPSDeviceClient(iotHub, auth); sample.StartAsync().GetAwaiter().GetResult(); Console.WriteLine("Enter any key to exit"); Console.ReadLine(); return(0); }
public static async Task <DevicePortalInfoModel> ProvisionDeviceAsync(DeviceModel device) { try { using (var security = new SecurityProviderSymmetricKey(device.RegistrationId, device.PrimaryKey, device.SecondaryKey)) { using (var transport = new ProvisioningTransportHandlerAmqp(TransportFallbackType.TcpOnly)) { ProvisioningDeviceClient provClient = ProvisioningDeviceClient.Create(GlobalDeviceEndpoint, device.ID_Scope, security, transport); var result = await provClient.RegisterAsync(); if (result.Status != ProvisioningRegistrationStatusType.Assigned) { return(null); } IAuthenticationMethod auth = GetAuthenticationMethod(result, security); var host = $"{result.AssignedHub}"; var builder = IotHubConnectionStringBuilder.Create(host, auth); device.PrimaryKey = security.GetPrimaryKey(); device.SecondaryKey = security.GetSecondaryKey(); var o = new DevicePortalInfoModel { Host = host, Auth = auth, Device = device, ConnectionString = builder.ToString() }; return(o); } } } catch (Exception exp) { throw exp; } }