public async Task <List <string> > BootstrapDefaultDevices()
        {
            List <string> sampleIds = SampleDeviceFactory.GetDefaultDeviceNames();

            foreach (string id in sampleIds)
            {
                DeviceModel  device = DeviceCreatorHelper.BuildDeviceStructure(id, true, null);
                SecurityKeys generatedSecurityKeys = _securityKeyGenerator.CreateRandomKeys();
                SampleDeviceFactory.AssignDefaultTags(device);
                SampleDeviceFactory.AssignDefaultDesiredProperties(device);
                await this.AddDeviceToRepositoriesAsync(device, generatedSecurityKeys);
            }
            return(sampleIds);
        }
        private async Task <DeviceWithKeys> AddDeviceAsync(UnregisteredDeviceModel unregisteredDeviceModel)
        {
            Debug.Assert(
                unregisteredDeviceModel != null,
                "unregisteredDeviceModel is a null reference.");

            Debug.Assert(
                unregisteredDeviceModel.DeviceType != null,
                "unregisteredDeviceModel.DeviceType is a null reference.");

            DeviceModel device = DeviceCreatorHelper.BuildDeviceStructure(
                unregisteredDeviceModel.DeviceId,
                unregisteredDeviceModel.DeviceType.IsSimulatedDevice,
                unregisteredDeviceModel.Iccid);

            SampleDeviceFactory.AssignDefaultTags(device);
            SampleDeviceFactory.AssignDefaultDesiredProperties(device);

            DeviceWithKeys addedDevice = await this._deviceLogic.AddDeviceAsync(device);

            return(addedDevice);
        }