Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Format files
  • Loading branch information
azabbasi committed Jun 10, 2020
commit fe3fffbf2a232a50bfd9d6b1a24ac1e30df39ef1
89 changes: 72 additions & 17 deletions sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ internal DevicesClient(RegistryManagerRestClient registryManagerClient, TwinRest
/// <param name="precondition">The condition on which to perform this operation. To create a device identity, this value must be equal to <see cref="IfMatchPrecondition.Unconditional"/>.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The created device identity.</returns>
public virtual Task<Response<DeviceIdentity>> CreateOrUpdateIdentityAsync(DeviceIdentity deviceIdentity, IfMatchPrecondition precondition = IfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Task<Response<DeviceIdentity>> CreateOrUpdateIdentityAsync(
DeviceIdentity deviceIdentity,
IfMatchPrecondition precondition = IfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
Argument.AssertNotNull(deviceIdentity, nameof(deviceIdentity));
string ifMatchHeaderValue = IfMatchPreconditionExtensions.GetIfMatchHeaderValue(precondition, deviceIdentity.Etag);
Expand All @@ -60,7 +63,10 @@ public virtual Task<Response<DeviceIdentity>> CreateOrUpdateIdentityAsync(Device
/// <param name="precondition">The condition on which to perform this operation. To create a device identity, this value must be equal to <see cref="IfMatchPrecondition.Unconditional"/>.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The created device identity.</returns>
public virtual Response<DeviceIdentity> CreateOrUpdateIdentity(DeviceIdentity deviceIdentity, IfMatchPrecondition precondition = IfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Response<DeviceIdentity> CreateOrUpdateIdentity(
DeviceIdentity deviceIdentity,
IfMatchPrecondition precondition = IfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
Argument.AssertNotNull(deviceIdentity, nameof(deviceIdentity));
string ifMatchHeaderValue = IfMatchPreconditionExtensions.GetIfMatchHeaderValue(precondition, deviceIdentity.Etag);
Expand Down Expand Up @@ -96,7 +102,10 @@ public virtual Response<DeviceIdentity> GetIdentity(string deviceId, Cancellatio
/// <param name="precondition">The condition on which to delete the device.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The http response.</returns>
public virtual Task<Response> DeleteIdentityAsync(DeviceIdentity deviceIdentity, IfMatchPrecondition precondition = IfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Task<Response> DeleteIdentityAsync(
DeviceIdentity deviceIdentity,
IfMatchPrecondition precondition = IfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
Argument.AssertNotNull(deviceIdentity, nameof(deviceIdentity));
string ifMatchHeaderValue = IfMatchPreconditionExtensions.GetIfMatchHeaderValue(precondition, deviceIdentity.Etag);
Expand All @@ -110,7 +119,10 @@ public virtual Task<Response> DeleteIdentityAsync(DeviceIdentity deviceIdentity,
/// <param name="precondition">The condition on which to delete the device.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The http response.</returns>
public virtual Response DeleteIdentity(DeviceIdentity deviceIdentity, IfMatchPrecondition precondition = IfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Response DeleteIdentity(
DeviceIdentity deviceIdentity,
IfMatchPrecondition precondition = IfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
Argument.AssertNotNull(deviceIdentity, nameof(deviceIdentity));
string ifMatchHeaderValue = IfMatchPreconditionExtensions.GetIfMatchHeaderValue(precondition, deviceIdentity.Etag);
Expand Down Expand Up @@ -234,7 +246,10 @@ public virtual Response<BulkRegistryOperationResponse> CreateIdentities(IEnumera
/// <param name="precondition">The condition on which to update each device identity.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The result of the bulk operation.</returns>
public virtual Task<Response<BulkRegistryOperationResponse>> UpdateIdentiesAsync(IEnumerable<DeviceIdentity> deviceIdentities, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Task<Response<BulkRegistryOperationResponse>> UpdateIdentiesAsync(
IEnumerable<DeviceIdentity> deviceIdentities,
BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
IEnumerable<ExportImportDevice> registryOperations = deviceIdentities
.Select(x => new ExportImportDevice()
Expand Down Expand Up @@ -262,7 +277,10 @@ public virtual Task<Response<BulkRegistryOperationResponse>> UpdateIdentiesAsync
/// <param name="precondition">The condition on which to update each device identity.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The result of the bulk operation.</returns>
public virtual Response<BulkRegistryOperationResponse> UpdateIdenties(IEnumerable<DeviceIdentity> deviceIdentities, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Response<BulkRegistryOperationResponse> UpdateIdenties(
IEnumerable<DeviceIdentity> deviceIdentities,
BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
IEnumerable<ExportImportDevice> registryOperations = deviceIdentities
.Select(x => new ExportImportDevice()
Expand Down Expand Up @@ -290,14 +308,19 @@ public virtual Response<BulkRegistryOperationResponse> UpdateIdenties(IEnumerabl
/// <param name="precondition">The condition on which to delete each device identity.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The result of the bulk deletion.</returns>
public virtual Task<Response<BulkRegistryOperationResponse>> DeleteIdentitiesAsync(IEnumerable<DeviceIdentity> deviceIdentities, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Task<Response<BulkRegistryOperationResponse>> DeleteIdentitiesAsync(
IEnumerable<DeviceIdentity> deviceIdentities,
BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
IEnumerable<ExportImportDevice> registryOperations = deviceIdentities
.Select(x => new ExportImportDevice()
{
Id = x.DeviceId,
ETag = x.Etag,
ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.Delete : ExportImportDeviceImportMode.DeleteIfMatchETag
ImportMode = precondition == BulkIfMatchPrecondition.Unconditional
? ExportImportDeviceImportMode.Delete
: ExportImportDeviceImportMode.DeleteIfMatchETag
});

return _registryManagerClient.BulkDeviceCrudAsync(registryOperations, cancellationToken);
Expand All @@ -310,14 +333,19 @@ public virtual Task<Response<BulkRegistryOperationResponse>> DeleteIdentitiesAsy
/// <param name="precondition">The condition on which to delete each device identity.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The result of the bulk deletion.</returns>
public virtual Response<BulkRegistryOperationResponse> DeleteIdentities(IEnumerable<DeviceIdentity> deviceIdentities, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Response<BulkRegistryOperationResponse> DeleteIdentities(
IEnumerable<DeviceIdentity> deviceIdentities,
BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
IEnumerable<ExportImportDevice> registryOperations = deviceIdentities
.Select(x => new ExportImportDevice()
{
Id = x.DeviceId,
ETag = x.Etag,
ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.Delete : ExportImportDeviceImportMode.DeleteIfMatchETag
ImportMode = precondition == BulkIfMatchPrecondition.Unconditional
? ExportImportDeviceImportMode.Delete
: ExportImportDeviceImportMode.DeleteIfMatchETag
});

return _registryManagerClient.BulkDeviceCrud(registryOperations, cancellationToken);
Expand All @@ -338,7 +366,12 @@ async Task<Page<TwinData>> FirstPageFunc(int? pageSizeHint)
{
Query = "select * from devices"
};
Response<IReadOnlyList<TwinData>> response = await _registryManagerClient.QueryIotHubAsync(querySpecification, null, pageSizeHint?.ToString(CultureInfo.InvariantCulture), cancellationToken).ConfigureAwait(false);
Response<IReadOnlyList<TwinData>> response = await _registryManagerClient.QueryIotHubAsync(
querySpecification,
null,
pageSizeHint?.ToString(CultureInfo.InvariantCulture),
cancellationToken).ConfigureAwait(false);

response.GetRawResponse().Headers.TryGetValue(ContinuationTokenHeader, out string continuationToken);

return Page.FromValues(response.Value, continuationToken, response.GetRawResponse());
Expand All @@ -347,7 +380,12 @@ async Task<Page<TwinData>> FirstPageFunc(int? pageSizeHint)
async Task<Page<TwinData>> NextPageFunc(string nextLink, int? pageSizeHint)
{
var querySpecification = new QuerySpecification();
Response<IReadOnlyList<TwinData>> response = await _registryManagerClient.QueryIotHubAsync(querySpecification, nextLink, pageSizeHint?.ToString(CultureInfo.InvariantCulture), cancellationToken).ConfigureAwait(false);
Response<IReadOnlyList<TwinData>> response = await _registryManagerClient.QueryIotHubAsync(
querySpecification,
nextLink,
pageSizeHint?.ToString(CultureInfo.InvariantCulture),
cancellationToken).ConfigureAwait(false);

response.GetRawResponse().Headers.TryGetValue(ContinuationTokenHeader, out string continuationToken);
return Page.FromValues(response.Value, continuationToken, response.GetRawResponse());
}
Expand All @@ -370,7 +408,11 @@ Page<TwinData> FirstPageFunc(int? pageSizeHint)
Query = "select * from devices"
};

Response<IReadOnlyList<TwinData>> response = _registryManagerClient.QueryIotHub(querySpecification, null, pageSizeHint?.ToString(CultureInfo.InvariantCulture), cancellationToken);
Response<IReadOnlyList<TwinData>> response = _registryManagerClient.QueryIotHub(
querySpecification,
null,
pageSizeHint?.ToString(CultureInfo.InvariantCulture),
cancellationToken);

response.GetRawResponse().Headers.TryGetValue(ContinuationTokenHeader, out string continuationToken);

Expand All @@ -380,7 +422,12 @@ Page<TwinData> FirstPageFunc(int? pageSizeHint)
Page<TwinData> NextPageFunc(string nextLink, int? pageSizeHint)
{
var querySpecification = new QuerySpecification();
Response<IReadOnlyList<TwinData>> response = _registryManagerClient.QueryIotHub(querySpecification, nextLink, pageSizeHint?.ToString(CultureInfo.InvariantCulture), cancellationToken);
Response<IReadOnlyList<TwinData>> response = _registryManagerClient.QueryIotHub(
querySpecification,
nextLink,
pageSizeHint?.ToString(CultureInfo.InvariantCulture),
cancellationToken);

response.GetRawResponse().Headers.TryGetValue(ContinuationTokenHeader, out string continuationToken);
return Page.FromValues(response.Value, continuationToken, response.GetRawResponse());
}
Expand Down Expand Up @@ -445,7 +492,10 @@ public virtual Response<TwinData> UpdateTwin(TwinData twinUpdate, IfMatchPrecond
/// <param name="precondition">The condition on which to update each device twin.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The result of the bulk operation.</returns>
public virtual Task<Response<BulkRegistryOperationResponse>> UpdateTwinsAsync(IEnumerable<TwinData> twinUpdates, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Task<Response<BulkRegistryOperationResponse>> UpdateTwinsAsync(
IEnumerable<TwinData> twinUpdates,
BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
IEnumerable<ExportImportDevice> registryOperations = twinUpdates
.Select(x => new ExportImportDevice()
Expand All @@ -467,7 +517,10 @@ public virtual Task<Response<BulkRegistryOperationResponse>> UpdateTwinsAsync(IE
/// <param name="precondition">The condition on which to update each device twin.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The result of the bulk operation.</returns>
public virtual Response<BulkRegistryOperationResponse> UpdateTwins(IEnumerable<TwinData> twinUpdates, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default)
public virtual Response<BulkRegistryOperationResponse> UpdateTwins(
IEnumerable<TwinData> twinUpdates,
BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch,
CancellationToken cancellationToken = default)
{
IEnumerable<ExportImportDevice> registryOperations = twinUpdates
.Select(x => new ExportImportDevice()
Expand All @@ -476,7 +529,9 @@ public virtual Response<BulkRegistryOperationResponse> UpdateTwins(IEnumerable<T
Tags = x.Tags,
Properties = new PropertyContainer(x.Properties?.Desired, x.Properties?.Reported),
TwinETag = x.Etag,
ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.UpdateTwin : ExportImportDeviceImportMode.UpdateTwinIfMatchETag
ImportMode = precondition == BulkIfMatchPrecondition.Unconditional
? ExportImportDeviceImportMode.UpdateTwin
: ExportImportDeviceImportMode.UpdateTwinIfMatchETag
});

return _registryManagerClient.BulkDeviceCrud(registryOperations, cancellationToken);
Expand Down
13 changes: 11 additions & 2 deletions sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,11 @@ Page<TwinData> FirstPageFunc(int? pageSizeHint)
Query = "select * from modules"
};

Response<IReadOnlyList<TwinData>> response = _registryManagerClient.QueryIotHub(querySpecification, null, pageSizeHint?.ToString(CultureInfo.InvariantCulture), cancellationToken);
Response<IReadOnlyList<TwinData>> response = _registryManagerClient.QueryIotHub(
querySpecification,
null,
pageSizeHint?.ToString(CultureInfo.InvariantCulture),
cancellationToken);

response.GetRawResponse().Headers.TryGetValue(ContinuationTokenHeader, out string continuationToken);

Expand All @@ -214,7 +218,12 @@ Page<TwinData> FirstPageFunc(int? pageSizeHint)
Page<TwinData> NextPageFunc(string nextLink, int? pageSizeHint)
{
var querySpecification = new QuerySpecification();
Response<IReadOnlyList<TwinData>> response = _registryManagerClient.QueryIotHub(querySpecification, nextLink, pageSizeHint?.ToString(CultureInfo.InvariantCulture), cancellationToken);
Response<IReadOnlyList<TwinData>> response = _registryManagerClient.QueryIotHub(
querySpecification,
nextLink,
pageSizeHint?.ToString(CultureInfo.InvariantCulture),
cancellationToken);

response.GetRawResponse().Headers.TryGetValue(ContinuationTokenHeader, out string continuationToken);
return Page.FromValues(response.Value, continuationToken, response.GetRawResponse());
}
Expand Down