public string GetExpiringRoute() { List <Mission> missions = missionMonitor.missions.ToList(); string expiringSystem = null; decimal expiringDistance = 0; long expiringSeconds = 0; List <long> missionids = new List <long>(); // List of mission IDs for the next system if (missions.Count > 0) { StarSystem curr = EDDI.Instance?.CurrentStarSystem; StarSystem dest = new StarSystem(); // Destination star system foreach (Mission mission in missions.Where(m => m.statusEDName == "Active").ToList()) { if (expiringSeconds == 0 || mission.expiryseconds < expiringSeconds) { expiringSeconds = mission.expiryseconds ?? 0; expiringSystem = mission.destinationsystem; } } dest = StarSystemSqLiteRepository.Instance.GetOrCreateStarSystem(expiringSystem, true); expiringDistance = CalculateDistance(curr, dest); // Get mission IDs for 'expiring' system missionids = missionMonitor.GetSystemMissionIds(expiringSystem); // Set route and destination variables missionMonitor.SetNavigationData(expiringSystem, null, expiringDistance); } EDDI.Instance.enqueueEvent(new RouteDetailsEvent(DateTime.Now, "expiring", expiringSystem, expiringSystem, expiringSeconds, expiringDistance, expiringDistance, missionids)); return(expiringSystem); }