Example #1
0
        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;
        }
Example #2
0
        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));
        }
Example #3
0
 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;
     }
 }