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