/// <summary> /// Обработчик события нажатия клавиши мыши на элемент главного меню, /// который открывает диалоговое окно для задания условия поиска конфигурации сервера /// </summary> private void поискToolStripMenuItem_Click(object sender, EventArgs e) { if (ServersInfoMain != null && ServersInfoMain.Count > 0) { var serversCondition = new ServersConditionConstructorForm(ServersInfoMain); if (serversCondition.ShowDialog() == DialogResult.OK) { int pos = 0; if (!_serverSelected) { pos = ServersInfoMain.IndexOf(serversCondition.ServersInfoToShow.First()); } else { pos = ServersInfoToShow.IndexOf(serversCondition.ServersInfoToShow.First()); } if (pos > -1) { serverInfoBindingSource.Position = pos; } } } else { MessageBox.Show("Отсутсвуют конфигурации серверов для совершения поиска!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Выполнение отбора конфигураций серверов данных по условию /// </summary> private int RunSelection() { List <ServerInfo> selectedServers = null; try { if (SelectedPlatform != null && SelectedCPU != null) { selectedServers = ServersInfoMain.Where(si => si.Platform.Equals(SelectedPlatform.Manufacturer.Name + " " + SelectedPlatform.Model) && si.CPU.Equals(SelectedCPU.Manufacturer.Name + " " + SelectedCPU.Model)) .ToList(); } else if (SelectedPlatform != null) { selectedServers = ServersInfoMain.Where(si => si.Platform.Equals(SelectedPlatform.Manufacturer.Name + " " + SelectedPlatform.Model)).ToList(); } else if (SelectedCPU != null) { selectedServers = ServersInfoMain.Where(si => si.CPU.Equals(SelectedCPU.Manufacturer.Name + " " + SelectedCPU.Model)).ToList(); } else { selectedServers = ServersInfoMain.ToList(); } ServersInfoToShow = new BindingList <ServerInfo>(selectedServers); return(ServersInfoToShow.Count); } catch { ServersInfoToShow = null; return(0); } }