private async void FlightConnector_AircraftStatusUpdated(object sender, AircraftStatusUpdatedEventArgs e)
        {
            if (viewModel.IsTracking)
            {
                e.AircraftStatus.Callsign        = viewModel.Callsign;
                e.AircraftStatus.TransponderMode = viewModel.TransponderIdent ? TransponderMode.Ident : TransponderMode.ModeC;

                if (hub?.ConnectionId != null && DateTime.Now - lastStatusSent > TimeSpan.FromMilliseconds(MinimumUpdatePeriod))
                {
                    route.Add(new AircraftStatusBrief(e.AircraftStatus));

                    lastStatusSent = DateTime.Now;
                    await hub.SendAsync("UpdateAircraft", e.AircraftStatus);

                    lastStatusSent = DateTime.Now;

                    if (viewModel.TransponderIdent)
                    {
                        viewModel.TransponderIdent = false;
                    }
                }

                viewModel.AircraftStatus = e.AircraftStatus;

                try
                {
                    if (viewModel.BroadcastUDP)
                    {
                        await udpBroadcastLogic.SendGpsAsync(e.AircraftStatus);

                        await udpBroadcastLogic.SendAttitudeAsync(e.AircraftStatus);
                    }
                }
                catch (Exception ex)
                {
                    logger.LogError(ex, "Cannot send network package!");
                }
            }
        }
        private async void FlightConnector_AircraftStatusUpdated(object sender, AircraftStatusUpdatedEventArgs e)
        {
            if (viewModel.IsTracking)
            {
                e.AircraftStatus.Callsign        = viewModel.Callsign;
                e.AircraftStatus.TransponderMode = viewModel.TransponderIdent ? TransponderMode.Ident : TransponderMode.ModeC;

                if (DateTime.Now - lastStatusSent > TimeSpan.FromMilliseconds(MinimumUpdatePeriod))
                {
                    if (hub?.ConnectionId != null)
                    {
                        route.Add(new AircraftStatusBrief(e.AircraftStatus));

                        lastStatusSent = DateTime.Now;
                        await hub.SendAsync("UpdateAircraft", e.AircraftStatus);

                        lastStatusSent = DateTime.Now;

                        if (viewModel.TransponderIdent)
                        {
                            viewModel.TransponderIdent = false;
                        }
                    }

                    var stopwatch = new Stopwatch();
                    stopwatch.Start();
                    var     minDistance = 0d;
                    Airport minAirport  = null;
                    foreach (var airport in airports.Values)
                    {
                        var distance = GpsHelper.CalculateDistance(e.AircraftStatus.Latitude, e.AircraftStatus.Longitude, airport.Latitude, airport.Longitude);
                        if (minAirport == null || minDistance > distance)
                        {
                            minDistance = distance;
                            minAirport  = airport;
                        }
                    }
                    if (minAirport != null)
                    {
                        viewModel.NearestAirport = minAirport;
                    }
                    //Debug.WriteLine($"Found closest airport in {stopwatch.ElapsedMilliseconds}ms");
                    stopwatch.Stop();
                }

                viewModel.AircraftStatus = e.AircraftStatus;

                try
                {
                    if (viewModel.BroadcastUDP)
                    {
                        await udpBroadcastLogic.SendGpsAsync(e.AircraftStatus);

                        await udpBroadcastLogic.SendAttitudeAsync(e.AircraftStatus);
                    }
                }
                catch (Exception ex)
                {
                    logger.LogError(ex, "Cannot send network package!");
                }
            }
        }