/// <summary> /// Initializes a new instance of the <see cref="IoTHubServiceClient"/> class. /// </summary> /// <param name="connectionString"> /// The IoT Hub connection string, with either "iothubowner", "service", "registryRead" or "registryReadWrite" policy, as applicable. /// For more information, see <see href="https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security#access-control-and-permissions">Access control and permissions</see>. /// </param> /// <param name="options"> /// Options that allow configuration of requests sent to the IoT Hub service. /// </param> public IoTHubServiceClient(string connectionString, IoTHubServiceClientOptions options) { Argument.AssertNotNull(options, nameof(options)); var iotHubConnectionString = new IotHubConnectionString(connectionString); ISasTokenProvider sasProvider = iotHubConnectionString.GetSasTokenProvider(); _endpoint = BuildEndpointUriFromHostName(iotHubConnectionString.HostName); _clientDiagnostics = new ClientDiagnostics(options); options.AddPolicy(new SasTokenAuthenticationPolicy(sasProvider), HttpPipelinePosition.PerCall); _httpPipeline = HttpPipelineBuilder.Build(options); _devicesRestClient = new DevicesRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); _modulesRestClient = new ModulesRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); _queryRestClient = new QueryRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); Devices = new DevicesClient(_devicesRestClient, _queryRestClient); Modules = new ModulesClient(_devicesRestClient, _modulesRestClient, _queryRestClient); Statistics = new StatisticsClient(); Messages = new CloudToDeviceMessagesClient(); Files = new FilesClient(); Jobs = new JobsClient(); }
/// <summary> /// Initializes a new instance of the <see cref="DataRepository"/> class /// </summary> /// <param name="sasTokenProvider">A provider that can be asked for SAS tokens.</param> /// <param name="cosmosSettings">the configuration settings for azure cosmos database</param> /// <param name="storageConfiguration">the storage configuration for azure blob storage</param> /// <param name="logger">The logger to use when writing to logs.</param> public DataRepository( ISasTokenProvider sasTokenProvider, IOptions <AzureCosmosSettings> cosmosSettings, IOptions <AzureStorageConfiguration> storageConfiguration, ILogger <DataRepository> logger) { _storageConfiguration = storageConfiguration.Value; _sasTokenProvider = sasTokenProvider; _logger = logger; CosmosDatabaseHandler database = new CosmosDatabaseHandler(cosmosSettings.Value); _documentClient = database.CreateDatabaseAndCollection(_collectionId); _collectionUri = database.CollectionUri; Uri databaseUri = database.DatabaseUri; _databaseId = database.DatabaseName; DocumentCollection documentCollection = database.CreateDocumentCollection(_collectionId, _partitionKey); _documentClient.CreateDocumentCollectionIfNotExistsAsync( databaseUri, documentCollection).GetAwaiter().GetResult(); _documentClient.OpenAsync(); }
/// <summary> /// Initializes a new instance of the <see cref="BlobService"/> class. /// </summary> /// <param name="logger">The logger.</param> /// <param name="sasTokenProvider">The sas token provider</param> public BlobService(ILogger <IBlobService> logger, ISasTokenProvider sasTokenProvider) { _logger = logger; _sasTokenProvider = sasTokenProvider; _accountKey = Environment.GetEnvironmentVariable("AccountKey"); _blobEndpoint = Environment.GetEnvironmentVariable("BlobEndpoint"); _environment = Environment.GetEnvironmentVariable("Environment"); _accountName = _environment.Equals("dev") ? "devstoreaccount1" : _accountName; }
/// <summary> /// Initializes a new instance of the <see cref="BackupBlobService"/> class. /// </summary> /// <param name="logger">The logger.</param> /// <param name="sasTokenProvider">The sas token provider</param> /// <param name="keyVaultService">The key vault service</param> public BackupBlobService(ILogger <IBackupBlobService> logger, ISasTokenProvider sasTokenProvider, IKeyVaultService keyVaultService) { _logger = logger; _keyVaultService = keyVaultService; _accountKey = Environment.GetEnvironmentVariable("AccountKey"); _blobEndpoint = Environment.GetEnvironmentVariable("BlobEndpoint"); _environment = Environment.GetEnvironmentVariable("Environment"); _keyVaultUri = Environment.GetEnvironmentVariable("KeyVaultUri"); _accountName = _environment.Equals("dev") ? "devstoreaccount1" : _accountName; }
/// <summary> /// Initializes a new instance of the <see cref="DataRepository"/> class /// </summary> /// <param name="sasTokenProvider">A provider that can be asked for SAS tokens.</param> /// <param name="cosmosSettings">the configuration settings for azure cosmos database</param> /// <param name="storageConfiguration">the storage configuration for azure blob storage</param> /// <param name="logger">The logger to use when writing to logs.</param> public DataRepository( ISasTokenProvider sasTokenProvider, IOptions <AzureCosmosSettings> cosmosSettings, IOptions <AzureStorageConfiguration> storageConfiguration, ILogger <DataRepository> logger) : base(CollectionId, PartitionKey, cosmosSettings) { _storageConfiguration = storageConfiguration.Value; _sasTokenProvider = sasTokenProvider; _logger = logger; }