private Dictionary <XenAPI.Network, List <NetworkingPropertiesPage> > MakeProposedInUseMap() { Dictionary <XenAPI.Network, List <NetworkingPropertiesPage> > inusemap = new Dictionary <XenAPI.Network, List <NetworkingPropertiesPage> >(); foreach (NetworkingPropertiesPage page in verticalTabs.Items) { XenAPI.Network network = (XenAPI.Network)page.NetworkComboBox.SelectedItem; if (network == null) { PIF pif = page.Tag as PIF; if (pif == null) { continue; } network = pif.Connection.Resolve(pif.network); if (network == null) { continue; } } if (network.PIFs.Count == 0) { continue; } if (!inusemap.ContainsKey(network)) { inusemap[network] = new List <NetworkingPropertiesPage>(); } inusemap[network].Add(page); } foreach (XenAPI.Network network in connection.Cache.Networks) { if (network.Show(Properties.Settings.Default.ShowHiddenVMs)) { if (connection.ResolveAll(network.PIFs).Find(p => !p.IsTunnelAccessPIF()) == null) // no PIFs, or all the PIFs are tunnel access PIFs so the network is a CHIN { continue; } PIF pif = FindPIFForThisHost(network.PIFs); if (pif != null && pif.IsInUseBondSlave()) { continue; } if (!inusemap.ContainsKey(network)) { inusemap[network] = null; } } } return(inusemap); }