コード例 #1
0
ファイル: Filter.cs プロジェクト: Chr1000/ATM
        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;
        }
コード例 #2
0
ファイル: Filter.cs プロジェクト: RuneAK/SWT35_ATM_Handin3
 protected virtual void FilteredTrackEvent(EventTracks e)
 {
     TracksFiltered?.Invoke(this, e);
 }
コード例 #3
0
 protected virtual void NewFiltered(EventTracks e)
 {
     TracksFiltered?.Invoke(this, e);
 }