Exemplo n.º 1
0
        private void _PacketListener_PacketReceived(object sender, PacketInfoEventArgs e)
        {
            Application.Current.Dispatcher.Invoke((Action)(() =>
            {
                var packetInfo = e.PacketInfo;

                if (e.PacketInfo.Latitude == null ||
                    e.PacketInfo.Longitude == null)
                {
                    return;
                }

                TrackedObjectViewModel trackedObject;
                lock (_TrackedObjectList)
                {
                    trackedObject = (from obj in _TrackedObjectList where obj.LatestPacketInfoVM.PacketInfo.Callsign == packetInfo.Callsign select obj).SingleOrDefault();

                    if (trackedObject == null)
                    {
                        trackedObject = new TrackedObjectViewModel(packetInfo);
                        _TrackedObjectList.Add(trackedObject);
                    }
                    else
                    {
                        trackedObject.Update(packetInfo);
                    }
                }

                if (CurrentlyTrackedObject == null)
                {
                    CurrentlyTrackedObject = trackedObject;
                }

                if (trackedObject == CurrentlyTrackedObject)
                {
                    MapLocationVM.TrackObject(trackedObject);
                    if (CurrentllyTrackedObjectPacketReceived != null)
                    {
                        CurrentllyTrackedObjectPacketReceived(this, new PacketInfoEventArgs(packetInfo));
                    }
                }
            }));
        }
Exemplo n.º 2
0
 void _TrackerViewModel_CurrentllyTrackedObjectPacketReceived(object sender, PacketInfoEventArgs e)
 {
     addPushPin(e.PacketInfo);
 }