private async Task OnExecuteAsync() { HttpClient httpClient = await HttpClientHelper.GetHttpClientAsync(DigitalTwinsApiEndpoint, AadInstance, Tenant, DigitalTwinsResourceId, ClientId, ClientSecret); ProvisioningDescription provisioningDescription = ProvisioningHelper.LoadSmartHotelProvisioning(); await RemoveAllExistingDevicesAsync(httpClient, provisioningDescription); IReadOnlyCollection <Space> rootSpaces = await GetRootSpacesAsync(httpClient, provisioningDescription); await RemoveAllExistingResourcesAsync(httpClient, rootSpaces); await RemoveAllExistingRootSpacesAsync(httpClient, rootSpaces); if (RemoveEndpoints) { await RemoveAllExistingEndpoints(httpClient); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Press Enter to continue..."); Console.ReadLine(); }
private async Task OnExecuteAsync() { try { string fullUserObjectIdsFilePath = Path.GetFullPath(UserObjectIdsFile); string userAadObjectIdsString = await File.ReadAllTextAsync(fullUserObjectIdsFilePath); UserAadObjectIdsDescription userAadObjectIds = JsonConvert.DeserializeObject <UserAadObjectIdsDescription>(userAadObjectIdsString); if (!userAadObjectIds.AreRequiredValuesFilled()) { Console.WriteLine($"The {nameof( UserObjectIdsFile )} must have all the required properties filled." + " (Head Of Operations, Hotel Brand 1 Manager, Hotel 1 Manager, and Hotel 1 Employee)"); return; } HttpClient httpClient = await HttpClientHelper.GetHttpClientAsync(DigitalTwinsApiEndpoint, AadInstance, Tenant, DigitalTwinsResourceId, ClientId, ClientSecret); string fullPathToDigitalTwinsProvisioningFile = Path.GetFullPath(DigitalTwinsProvisioningFile); directoryContainingDigitalTwinsProvisioningFile = Path.GetDirectoryName(fullPathToDigitalTwinsProvisioningFile); Console.WriteLine("Loading the provisioning files..."); ProvisioningDescription provisioningDescription = ProvisioningHelper.LoadSmartHotelProvisioning(fullPathToDigitalTwinsProvisioningFile); Console.WriteLine("Successfully loaded provisioning files."); Console.WriteLine("Creating spaces and endpoints..."); await CreateSpacesAsync(httpClient, provisioningDescription.spaces, Guid.Empty, Guid.Empty, userAadObjectIds); Console.WriteLine(); Console.WriteLine(); Console.WriteLine($"Created {_spacesCreatedCount} spaces..."); Console.WriteLine(); Console.WriteLine(); await CreateEndpointsAsync(httpClient, provisioningDescription.endpoints); if (!string.IsNullOrEmpty(OutputFile)) { IDictionary <string, List <DeviceDescription> > allDevices = provisioningDescription.spaces.GetAllDeviceDescriptionsByDeviceIdPrefix(string.Empty); await File.WriteAllTextAsync(OutputFile, JsonConvert.SerializeObject(new SortedDictionary <string, List <DeviceDescription> >(allDevices))); } Console.WriteLine(); Console.WriteLine(); } catch (Exception ex) { Console.WriteLine($"Error occurred during Digital Twins provisioning: {ex}"); } }
private async Task OnExecuteAsync() { try { if (RemoveDevices) { _actionMessage = "Removing"; _actionMessagePastTense = "Removed"; } _iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(IoTHubRegistryConnectionString); _registryManager = RegistryManager.CreateFromConnectionString(IoTHubRegistryConnectionString); Console.WriteLine("Loading the provisioning files..."); ProvisioningDescription provisioningDescription = ProvisioningHelper.LoadSmartHotelProvisioning(DigitalTwinsProvisioningFile); Console.WriteLine("Successfully loaded provisioning files."); if (!string.IsNullOrEmpty(OutputFile)) { var sw = Stopwatch.StartNew(); IDictionary <string, List <DeviceDescription> > allDevices = provisioningDescription.spaces.GetAllDeviceDescriptionsByDeviceIdPrefix(string.Empty); Console.WriteLine($"{_actionMessage} IoT Hub devices..."); Console.WriteLine(); Console.WriteLine(); IDictionary <string, string> deviceConnectionStringsByPrefix = await CreateIoTHubDevicesAndGetConnectionStringsAsync(allDevices); sw.Stop(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine($"{_actionMessagePastTense} IoT Hub devices successfully in {sw.Elapsed.TotalMinutes} minutes."); if (!RemoveDevices) { await File.WriteAllTextAsync(OutputFile, JsonConvert.SerializeObject( new SortedDictionary <string, string>(deviceConnectionStringsByPrefix))); } } Console.WriteLine(); Console.WriteLine(); } catch (Exception ex) { Console.WriteLine($"Error occurred during IoT Hub Device provisioning: {ex}"); } }
private async Task OnExecuteAsync() { HttpClient httpClient = await HttpClientHelper.GetHttpClientAsync(DigitalTwinsApiEndpoint, AadInstance, Tenant, DigitalTwinsResourceId, ClientId, ClientSecret); ProvisioningDescription provisioningDescription = ProvisioningHelper.LoadSmartHotelProvisioning(); await CreateSpacesAsync(httpClient, provisioningDescription.spaces, Guid.Empty, Guid.Empty); await CreateEndpointsAsync(httpClient, provisioningDescription.endpoints); if (!string.IsNullOrEmpty(OutputFile)) { IDictionary <string, List <DeviceDescription> > allDevices = provisioningDescription.spaces.GetAllDeviceDescriptions(); await File.WriteAllTextAsync(OutputFile, JsonConvert.SerializeObject(allDevices)); } Console.WriteLine(); Console.WriteLine(); }