Exemple #1
0
        public virtual void AddOrUpdateDeviceInfos(DeviceId deviceId, DeviceInfo deviceInfo)
        {
            //lock (_lock)
            {
                var foundDeviceIdDeviceInfoLink = BaseDeviceIdDeviceInfoLink.Find(x => x.DeviceId.FullId == deviceId.FullId);

                var deviceIdDeviceInfoLinks = foundDeviceIdDeviceInfoLink.ToList();

                deviceInfo.Id = deviceId.FullId;

                if (deviceIdDeviceInfoLinks.Any())
                {
                    var link = deviceIdDeviceInfoLinks.Single(x => x.DeviceId.FullId == deviceId.FullId);
                    link.DeviceInfo = deviceInfo;
                    AddOrUpdate(deviceInfo);
                    Collections.DeviceIdDeviceInfoLink.Update(link);
                }
                else
                {
                    var deviceIdDeviceInfoLinkToAdd = new DeviceIdDeviceInfoLink {
                        DeviceId = deviceId, DeviceInfo = deviceInfo
                    };
                    AddOrUpdate(deviceId);

                    AddOrUpdate(deviceInfo);
                    Collections.DeviceIdDeviceInfoLink.Insert(deviceIdDeviceInfoLinkToAdd);
                }
            }
        }
Exemple #2
0
        public virtual bool TryGetDeviceInfos(DeviceId deviceId, out DeviceInfo info)
        {
            var deviceIdDeviceInfoLinks = BaseDeviceIdDeviceInfoLink.Find(x => x.DeviceId.FullId == deviceId.FullId);

            try
            {
                info = deviceIdDeviceInfoLinks.Single().DeviceInfo;
            }
            catch (Exception)
            {
                info = null;
                return(false);
            }

            return(info != null);
        }