public void FilterTrack(object o, TracksChangedEventArgs args) { List <Track> newFilteredTracks = new List <Track>(); foreach (var track in args.Tracks) { var newEvent = new IsTrackInAirspaceEventArgs(track); IsTrackInAirspace?.Invoke(this, newEvent); if (newEvent.IsInAirspace) { newFilteredTracks.Add(track); } else { foreach (var trackInUpdatedList in UpdatedTracksList) { if (track.Tag == trackInUpdatedList.Tag) { TrackLeft?.Invoke(this, new TrackLeftAirspaceEventArgs(track)); break; } } } } TracksFilteredEventArgs Args = new TracksFilteredEventArgs(newFilteredTracks); TracksFiltered?.Invoke(this, Args); UpdatedTracksList = Args.UpdatedTracks; }
protected virtual void FilteredTrackEvent(EventTracks e) { TracksFiltered?.Invoke(this, e); }
protected virtual void NewFiltered(EventTracks e) { TracksFiltered?.Invoke(this, e); }