public void PopulateMiners(List <MinerProcess> localMiners, List <NetworkDevices.NetworkDevice> networkMiners, MinerFormViewModel viewModel) { populatingMiners = true; string previousSelection = (string)minerComboBox.SelectedItem; minerComboBox.Items.Clear(); apiContexts.Clear(); foreach (MinerProcess localMiner in localMiners) { string devicePath = String.Format("{0}:{1}", localMiner.ApiContext.IpAddress, localMiner.ApiContext.Port); minerComboBox.Items.Add(String.Format("{0} ({1})", localMiner.Miner.Name, devicePath)); apiContexts.Add(new Xgminer.Api.ApiContext(localMiner.ApiContext.Port, localMiner.ApiContext.IpAddress)); } if (minerComboBox.Items.Count > 0) { minerComboBox.Items.Add("-"); apiContexts.Add(null); } foreach (NetworkDevices.NetworkDevice networkMiner in networkMiners) { string devicePath = String.Format("{0}:{1}", networkMiner.IPAddress, networkMiner.Port); DeviceViewModel deviceModel = viewModel.Devices.SingleOrDefault(d => d.Path.Equals(devicePath)); //the Network Device may be offline //null check as view models may not yet be populated if ((deviceModel != null) && deviceModel.Visible) { string minerName = viewModel.GetFriendlyDeviceName(devicePath, devicePath); minerComboBox.Items.Add(String.Format("{0} ({1})", minerName, devicePath)); apiContexts.Add(new Xgminer.Api.ApiContext(networkMiner.Port, networkMiner.IPAddress)); } } if ((minerComboBox.SelectedItem == null) && (minerComboBox.Items.Count > 0)) { minerComboBox.SelectedIndex = 0; } if (!String.IsNullOrEmpty(previousSelection)) { int previousSelectionIndex = minerComboBox.Items.IndexOf(previousSelection); if (previousSelectionIndex >= 0) { minerComboBox.SelectedIndex = previousSelectionIndex; } } populatingMiners = false; }
public ApiConsoleControl(List <MinerProcess> localMiners, List <NetworkDevices.NetworkDevice> networkMiners, MinerFormViewModel viewModel) { InitializeComponent(); inputTextBox.Enabled = false; PopulateMiners(localMiners, networkMiners, viewModel); }