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); } } }
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); }