public async Task <Device> ImportInitializeDeviceTwin(string deviceId, DeviceTwinImportModel tags)
        {
            Device device = await _DeviceTwinRepo.ImportInitializeDeviceTwin(deviceId, tags);

            if (device != null)
            {
                //Update cache
                _Cache.EnsureDeviceEntity(deviceId, tags);
            }
            return(device);
        }
        public void EnsureDeviceEntity(string deviceId, DeviceTwinImportModel tags)
        {
            //Update cache
            DeviceTwinFlatModel deviceEntity = null;
            bool result = DevicesDB.Devices.TryGetValue(deviceId, out deviceEntity);

            if (!result)
            {
                deviceEntity = DevicesDB.Devices.GetOrAdd(deviceId, new DeviceTwinFlatModel());
            }

            deviceEntity.ProductFamily  = tags.ProductFamily;
            deviceEntity.ProductName    = tags.ProductName;
            deviceEntity.RetailerName   = tags.RetailerName;
            deviceEntity.RetailerRegion = tags.RetailerRegion;
        }
Example #3
0
        public async Task <Device> ImportInitializeDeviceTwin(string deviceId, DeviceTwinImportModel tags)
        {
            try
            {
                Device device = await CreateDevice(deviceId);

                if (device != null)
                {
                    await UpdateDeviceSync(device.Id, null, JsonConvert.SerializeObject(tags));

                    return(device);
                }
                return(null);
            }
            catch (Exception e)
            {
                Log.Error("Create IoTHub Device {@error}", e.Message);
                throw e;
            }
        }