protected void DangerOfProximityEvent(object sender, FlightInProximityEventArgs e) //FlightInProximity event { var renderStr = $"Danger! Proximity of {e.proximityTracks.Item1.Tag} and {e.proximityTracks.Item2.Tag}"; _view.AddToRenderWithColor(renderStr, ConsoleColor.Red); _logger.DataLog(renderStr); var timer = new StringEventTimer(5000, renderStr); timer.Elapsed += StopShowingAirspaceEvent; }
public void DetectCollision(ICollection <IFlightTrack> tracks) { foreach (var track1 in tracks) { foreach (var track2 in tracks) { if (IsInCloseAirspace(track1, track2) && WithinTimespan(track1, track2) && track1.Tag != track2.Tag) { var args = new FlightInProximityEventArgs(new Tuple <IFlightTrack, IFlightTrack>(track1, track2)); FlightsInProximity?.Invoke(this, args); } } } }