/// <summary> /// Körs igång när publishern publishar något och lägger till flighter i listan när de har startat och de tas bort när de har landat /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void OnEventChanged(object sender, StartEventInfo e) { if (e != null) { if (e.Status == "Started") { startedFlights.Add(e); } if (e.Status == "Landed") { for (int i = 0; i < startedFlights.Count; i++) { if (e.FlightCode == startedFlights.ElementAt(i).FlightCode) { startedFlights.RemoveAt(i); } } } updateListview(); } }
/// <summary> /// Raisar route change event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cbRouteChange_SelectionChanged(object sender, SelectionChangedEventArgs e) { StartEventInfo eventInfo = new StartEventInfo(); eventInfo.FlightCode = flightCode; eventInfo.Status = "Now heading " + cbRouteChange.SelectedItem.ToString(); handlerEventInfo(this, eventInfo); }
/// <summary> /// Startar en flight /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSendPlane_Click(object sender, RoutedEventArgs e) { string flightC = txtFlightCode.Text; if (!string.IsNullOrEmpty(flightC)) { //Tar bort alla blanksteg och gör alla bokstäver till versaler flightC = Regex.Replace(flightC, @"\s+", "").ToUpper(); FlightWindow flight = new FlightWindow(flightC); flight.Show(); flight.handlerEventInfo += OnEventChanged; // ongoingflightswindow klassen subscribar på den skapade flighten // Fråga, Hur gör jag detta från OngoingFlightsWindow klassen? // Min lösning känns lite fel även om det funkar.. flight.handlerEventInfo += ongoingflights.OnEventChanged; StartEventInfo fu = new StartEventInfo(); fu.FlightCode = flightC; fu.Status = "Sent to runway"; listviewen.Items.Insert(0, fu); //Nollas för att den ska kunna rensas från minnet såfort som möjligt eftersom vi inte behöver objektet längre fu = null; txtFlightCode.Text = ""; } }
/// <summary> /// Startar flighten /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStart_Click(object sender, RoutedEventArgs e) { StartEventInfo eventInfo = new StartEventInfo(); eventInfo.FlightCode = flightCode; eventInfo.Status = "Started"; handlerEventInfo(this, eventInfo); btnStart.IsEnabled = false; btnLand.IsEnabled = true; cbRouteChange.IsEnabled = true; }
/// <summary> /// Lägger till info om eventet som skedde i listviewen /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnEventChanged(object sender, StartEventInfo e) { if (e != null) { listviewen.Items.Insert(0, e); } }