private void populateHosts() { Program.AssertOnEventThread(); ToStringWrapper <Host> previousSelection = NewMasterComboBox.SelectedItem as ToStringWrapper <Host>; NewMasterComboBox.BeginUpdate(); try { NewMasterComboBox.Items.Clear(); foreach (Host host in connection.Cache.Hosts) { Host_metrics metrics = connection.Resolve <Host_metrics>(host.metrics); if (host.opaque_ref == this.host.opaque_ref) { continue; } host.PropertyChanged -= new PropertyChangedEventHandler(host_PropertyChanged); host.PropertyChanged += new PropertyChangedEventHandler(host_PropertyChanged); if (host.enabled && metrics != null && metrics.live) { NewMasterComboBox.Items.Add(new ToStringWrapper <Host>(host, host.Name())); } } SelectProperItemInNewMasterComboBox(previousSelection); } finally { NewMasterComboBox.EndUpdate(); } }
private void PopulateHosts() { Program.AssertOnEventThread(); if (!tableLayoutPanelNewMaster.Visible) { return; } try { NewMasterComboBox.BeginUpdate(); var hosts = connection.Cache.Hosts.Where(h => h.opaque_ref != _host.opaque_ref).ToList(); hosts.Sort(); foreach (Host host in hosts) { host.PropertyChanged -= host_PropertyChanged; host.PropertyChanged += host_PropertyChanged; Host_metrics metrics = connection.Resolve(host.metrics); if (host.enabled && metrics != null && metrics.live) { var item = new ToStringWrapper <Host>(host, host.Name()); NewMasterComboBox.Items.Add(item); if (hostSelection != null && host.opaque_ref == hostSelection.item.opaque_ref) { NewMasterComboBox.SelectedItem = item; } } } //Update NewMasterComboBox for host power on recommendation foreach (KeyValuePair <XenRef <VM>, string[]> kvp in reasons) { var vm = connection.Resolve(kvp.Key); if (vm != null && vm.is_control_domain) { Host powerOnHost = connection.Cache.Hosts.FirstOrDefault(h => h.uuid == kvp.Value[(int)RecProperties.ToHost]); if (powerOnHost != null) { var hostToAdd = new ToStringWrapper <Host>(powerOnHost, powerOnHost.Name()); if (NewMasterComboBox.Items.Cast <ToStringWrapper <Host> >().FirstOrDefault(i => i.item.opaque_ref == powerOnHost.opaque_ref) == null) { powerOnHost.PropertyChanged -= host_PropertyChanged; powerOnHost.PropertyChanged += host_PropertyChanged; NewMasterComboBox.Items.Add(hostToAdd); } } } } if (NewMasterComboBox.SelectedItem == null && NewMasterComboBox.Items.Count > 0) { NewMasterComboBox.SelectedIndex = 0; } } finally { EnableComboBox(); NewMasterComboBox.EndUpdate(); } }