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; }
public void Initial_IsTrackInAirspaceOneTrack_TracksIsInAirspaceIsFalse(int x, int y, int alt) { Track track = new Track() { Tag = "NIC111", X = x, Y = y, Altitude = alt, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture) }; IsTrackInAirspaceEventArgs args = new IsTrackInAirspaceEventArgs(track); _filter.IsTrackInAirspace += Raise.EventWith(args); Assert.That(_trackIsInAirspace, Is.EqualTo(false)); }
private void IsTrackInAirspace(object o, IsTrackInAirspaceEventArgs args) { if (args.Track.X >= SWCornerX && args.Track.X <= NECornerX && args.Track.Y >= SWCornerY && args.Track.Y <= NECornerY && args.Track.Altitude >= lowerAlt && args.Track.Altitude <= upperAlt) { args.IsInAirspace = true; } else { args.IsInAirspace = false; } }