public HomeController(IOptionsSnapshot <BlobSetting> options)
 {
     _options = options.Value;
 }
 public ScopedGreetService(ILogger <ScopedGreetService> logger, IOptionsSnapshot <BlobSetting> options)
 {
     _options = options.Value;
     _logger  = logger;
 }
Beispiel #3
0
        // Handle property updates
        static async Task onDesiredPropertiesUpdate(TwinCollection desiredProperties, object userContext)
        {
            try
            {
                Console.WriteLine("Desired property change:");
                Console.WriteLine(JsonConvert.SerializeObject(desiredProperties));

                var blobToken = "";

                if (desiredProperties.Count > 0)
                {
                    if (desiredProperties.Contains("interval"))
                    {
                        interval = desiredProperties["interval"];
                    }
                    if (desiredProperties.Contains("apipath"))
                    {
                        apipath = desiredProperties["apipath"];
                    }
                    if (desiredProperties.Contains("blobSetting"))
                    {
                        // Console.WriteLine(desiredProperties["blobSetting"]);
                        // var blobSetting = JsonConvert.DeserializeObject<dynamic>(desiredProperties["blobSetting"]);
                        var blobSetting = new BlobSetting()
                        {
                            blobName  = desiredProperties["blobSetting"].blobName + "",
                            blobToken = desiredProperties["blobSetting"].blobToken + ""
                        };

                        Console.WriteLine(Type.GetType(blobSetting.blobName));
                        Console.WriteLine(Type.GetType(blobSetting.blobToken));

                        var storeListTask = await StoreEdgeDataList(blobSetting.blobToken);

                        blobName  = blobSetting.blobName;
                        blobToken = blobSetting.blobToken;
                    }
                    if (desiredProperties.Contains("KeyVault"))
                    {
                        Console.WriteLine(" KeyVault content: " + desiredProperties["KeyVault"]);

                        //Get the properties to create a new instance of the keyvault helper
                        var keyVaultObject = desiredProperties["KeyVault"];
                        //Loop the secretnames "array"
                        List <string> secretNames = new List <string>();
                        foreach (var config in keyVaultObject.secretNames)
                        {
                            secretNames.Add(config.First.secretName.ToString());
                        }

                        //Create new keyvault helper instance
                        keyVaultHelper = new KeyVaultHelper(keyVaultObject.keyVaultUrl.ToString(), keyVaultObject.clientId.ToString(), keyVaultObject.clientSecret.ToString(), secretNames.ToArray());

                        // //Get username and password from the Keyvault helper
                        Username = keyVaultHelper.GetSecret("ClientUserName").GetAwaiter().GetResult().Value.ToString();
                        Password = keyVaultHelper.GetSecret("ClientPassword").GetAwaiter().GetResult().Value.ToString();
                        Console.WriteLine("user: {0}, pass: {1}", Username, Password);
                        //Get a new token for the  system
                        // Token = await GetApiToken();
                    }
                }

                var propertiesToUpdate = new
                {
                    interval    = interval,
                    apipath     = apipath,
                    blobSetting = new { blobName = blobName, blobToken = blobToken }
                };

                var reportedProperties = new TwinCollection(JsonConvert.SerializeObject(propertiesToUpdate));
                await ioTHubModuleClient.UpdateReportedPropertiesAsync(reportedProperties);
            }
            catch (AggregateException ex)
            {
                foreach (Exception exception in ex.InnerExceptions)
                {
                    Console.WriteLine();
                    Console.WriteLine("Error when receiving desired property: {0}", exception);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine();
                Console.WriteLine("Error when receiving desired property: {0}", ex.Message);
            }
        }
 public ScopedProcessor(IOptionsSnapshot <BlobSetting> options, ILogger <ScopedProcessor> logger)
 {
     _options = options.Value;
     _logger  = logger;
 }