in iothub/service/src/Registry/RegistryManager.cs [3023:3080]
private static IEnumerable<ExportImportDevice> GenerateExportImportDeviceListForBulkOperations(IEnumerable<Device> devices, ImportMode importMode)
{
if (devices == null)
{
throw new ArgumentNullException(nameof(devices));
}
if (!devices.Any())
{
throw new ArgumentException($"Parameter {nameof(devices)} cannot be empty.");
}
var exportImportDeviceList = new List<ExportImportDevice>(devices.Count());
foreach (Device device in devices)
{
ValidateDeviceId(device);
switch (importMode)
{
case ImportMode.Create:
if (!string.IsNullOrWhiteSpace(device.ETag))
{
throw new ArgumentException(ApiResources.ETagSetWhileRegisteringDevice);
}
break;
case ImportMode.Update:
// No preconditions
break;
case ImportMode.UpdateIfMatchETag:
if (string.IsNullOrWhiteSpace(device.ETag))
{
throw new ArgumentException(ApiResources.ETagNotSetWhileUpdatingDevice);
}
break;
case ImportMode.Delete:
// No preconditions
break;
case ImportMode.DeleteIfMatchETag:
if (string.IsNullOrWhiteSpace(device.ETag))
{
throw new ArgumentException(ApiResources.ETagNotSetWhileDeletingDevice);
}
break;
default:
throw new ArgumentException(IotHubApiResources.GetString(ApiResources.InvalidImportMode, importMode));
}
var exportImportDevice = new ExportImportDevice(device, importMode);
exportImportDeviceList.Add(exportImportDevice);
}
return exportImportDeviceList;
}