public void DeviceOnline(Device device, IDevicePanel devicePanel) { if (OfflineDevices.Contains(device)) { _Dispatcher.Invoke(() => OfflineDevices.Remove(device)); } if (!OnlineDevices.Contains(device)) { _Dispatcher.Invoke(() => OnlineDevices.Add(device)); } SortDevices(OfflineDevices); SortDevices(OnlineDevices); _devicePanelsRepository.TryRegisterDevicePanel(device, devicePanel); }
public void SelectionsStopMonitor(ListBox listBox) { IEnumerable <Device> devices = listBox.SelectedItems.Cast <Device>() !; foreach (Device device in devices) { IDevicePanel?devicePanel = _devicePanelsRepository.FindDevicePanel(device); if (devicePanel is null || (!devicePanel.CanStopMonitor())) { MessageBox.Show($"{device.Name} can't stop monitor now.", "Error:"); return; } } foreach (Device device in devices) { IDevicePanel devicePanel = _devicePanelsRepository.FindDevicePanel(device) !; devicePanel.StopMonitor(); } Window.GetWindow(listBox).Close(); }
public void SelectionsRun(ListBox listBox) { try { IEnumerable <Device> devices = listBox.SelectedItems.Cast <Device>() !; //IEnumerable<IDevicePanel?> devicePanels = devices.Select(_devicePanelsRepository.FindDevicePanel); foreach (Device device in devices) { IDevicePanel?devicePanel = _devicePanelsRepository.FindDevicePanel(device); if (devicePanel is null || (!devicePanel.CanRunProgram())) { MessageBox.Show($"{device.Name} can't run program now.", "Error:"); return; } } foreach (Device device in devices) { IDevicePanel devicePanel = _devicePanelsRepository.FindDevicePanel(device) !; devicePanel.StartRunProgram(); } }catch (Exception e) { MessageBox.Show(e.ToString()); } finally { Window.GetWindow(listBox).Close(); } }
public void SelectionsConnect(ListBox listBox) { try { IEnumerable <Device> devices = listBox.SelectedItems.Cast <Device>() !.ToList() !; TabItem? lastTabItem = null; TabControl tabControl = (Application.Current.MainWindow as MainWindow) !.TabControl_DevicePanels; foreach (Device device in devices) { _pluginLoadService.Load(device); IDevicePanel devicePanel = _devicePanelInstanceService.CreateDevicePanelInstance(device); TabItem tabItem = new TabItem() { Header = device.Name, Content = devicePanel.CreateDevicePanelUI(), VerticalContentAlignment = VerticalAlignment.Top }; tabControl.Items.Add(tabItem); lastTabItem = tabItem; _devicesRepository.DeviceOnline(device, devicePanel); } if (lastTabItem != null) { tabControl.SelectedItem = lastTabItem; } }catch (Exception err) { MessageBox.Show(err.ToString(), "Can't connect device error"); } finally { Window.GetWindow(listBox).Close(); } }