void OnAvailabilityDeviceChanged(object sender, DeviceChangeArgs e) { if (!e.DevicePath.Contains(SearchPattern)) { return; } DeviceInformation deviceInfo; switch (e.ChangeType) { case DeviceChange.Added: deviceInfo = DeviceManager.EnumerateAllDevices().First(d => d.Path == e.DevicePath); Contract.Assert(!AvailableDevices.Contains(deviceInfo)); InsertDeviceInfo(deviceInfo); Log.InfoFormat(Strings.USB_Device_Plugged_0, deviceInfo.Description); break; case DeviceChange.Removed: deviceInfo = AvailableDevices.First(d => d.Path == e.DevicePath); Contract.Assert(AvailableDevices.Contains(deviceInfo)); AvailableDevices.Remove(deviceInfo); Log.InfoFormat(Strings.USB_Device_Unplugged_0, deviceInfo.Description); break; } }
public DeviceMonitor(IDeviceManager deviceManager, string searchPattern) { Contract.Requires <ArgumentNullException>(deviceManager != null); Contract.Requires <ArgumentNullException>(searchPattern != null); DeviceManager = deviceManager; DeviceManager.DeviceChanged += OnAvailabilityDeviceChanged; SearchPattern = searchPattern; var availableDevices = DeviceManager .EnumerateAllDevices() .Where(d => d.Path.Contains(SearchPattern)) .OrderBy(d => d.Path); AvailableDevices = new BindingList <DeviceInformation>(availableDevices.ToList()); }
public DeviceMonitor(IDeviceManager deviceManager, string searchPattern) { Contract.Requires<ArgumentNullException>(deviceManager != null); Contract.Requires<ArgumentNullException>(searchPattern != null); DeviceManager = deviceManager; DeviceManager.DeviceChanged += OnAvailabilityDeviceChanged; SearchPattern = searchPattern; var availableDevices = DeviceManager .EnumerateAllDevices() .Where(d => d.Path.Contains(SearchPattern)) .OrderBy(d => d.Path); AvailableDevices = new BindingList<DeviceInformation>(availableDevices.ToList()); }