async Task OnDeviceConnectionStateChanged(DeviceConnectionStateChangedMessage message) { await _semaphoreQueue.WaitAsync(); try { if (message.Device.IsConnected) { // Add device if its connected and is missing from devices collection AddDevice(message.Device); } else { // Remove device from collection if its not connected var device = _devices.Values.FirstOrDefault(d => d.SerialNo == message.Device.SerialNo); if (device != null) { await RemoveDevice(device); } } } catch (Exception ex) { _log.WriteLine(ex); } finally { _semaphoreQueue.Release(); } }
Task OnDeviceConnectionStateChanged(DeviceConnectionStateChangedMessage obj) { lock (filterLock) { vaultIdFilter.Remove(obj.Device.Id); } return(Task.CompletedTask); }