private void FindBtnClick(object sender, EventArgs e) { double lengthFt; if (TryGetLength(out lengthFt) == false) { MessageBox.Show("Invalid runway length."); return; } var altn = new AlternateFinder(airportList) .AltnInfo(icaoTxtbox.Text, (int)lengthFt); DataGrid.Columns.Clear(); DataGrid.Rows.Clear(); DataGrid.ColumnCount = 4; DataGrid.RowCount = altn.Count; DataGrid.Columns[0].Name = "ICAO"; DataGrid.Columns[1].Name = "Airport Name"; DataGrid.Columns[2].Name = "Max RWY Length(" + lengthUnitComboBox.Text + ")"; DataGrid.Columns[3].Name = "Distance"; for (int i = 0; i < altn.Count; i++) { DataGrid[0, i].Value = altn[i].Icao; DataGrid[1, i].Value = altn[i].AirportName; DataGrid[2, i].Value = altn[i].LongestRwyLength; DataGrid[3, i].Value = altn[i].Distance; } if (lengthUnitComboBox.SelectedIndex == 0) { for (int i = 0; i < altn.Count; i++) { DataGrid[2, i].Value = (int)Math.Round( Convert.ToDouble(DataGrid[2, i].Value) * FtMeterRatio); } } DataGrid.Sort(DataGrid.Columns[3], ListSortDirection.Ascending); DataGrid.Columns[0].Width = 80; DataGrid.Columns[1].Width = 240; DataGrid.Columns[2].Width = 100; DataGrid.Columns[3].Width = 100; DataGrid.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; DataGrid.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; DataGrid.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; }
/// <summary> /// If the ICAO is found and the minimum runway length is a valid number, /// update the list of alternates. Otherwise, clear the list of alternates. /// </summary> public void FindAlternates() { view.Alternates = new AlternateFinder.AlternateInfo[0]; double?lengthFt = TryGetLengthFt(); if (lengthFt == null) { return; } var icao = view.ICAO; if (airportList[icao] == null) { return; } var finder = new AlternateFinder(airportList); view.Alternates = new ReadOnlyCollection <AlternateFinder.AlternateInfo>( finder.AltnInfo(icao, (int)lengthFt)); }