Пример #1
0
        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();
        }
Пример #2
0
        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}");
            }
        }
Пример #3
0
        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}");
            }
        }
Пример #4
0
        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();
        }