private void GetEDSMDistances() { try { if (EDDConfig.UseDistances) { EDSMClass edsm = new EDSMClass(); EDDBClass eddb = new EDDBClass(); string lstdist = _db.GetSettingString("EDSCLastDist", "2010-01-01 00:00:00"); string json; // Get distances lstdist = _db.GetSettingString("EDSCLastDist", "2010-01-01 00:00:00"); List<DistanceClass> dists = new List<DistanceClass>(); if (lstdist.Equals("2010-01-01 00:00:00")) { LogText("Downloading mirrored EDSM distance data. (Might take some time)" + Environment.NewLine); eddb.GetEDSMDistances(); json = LoadJsonFile(_fileEDSMDistances); if (json != null) { LogText("Adding mirrored EDSM distance data." + Environment.NewLine); dists = new List<DistanceClass>(); dists = DistanceClass.ParseEDSM(json, ref lstdist); LogText("Found " + dists.Count.ToString() + " distances." + Environment.NewLine); Application.DoEvents(); DistanceClass.Store(dists); _db.PutSettingString("EDSCLastDist", lstdist); } } LogText("Checking for new distances from EDSM. "); Application.DoEvents(); json = edsm.RequestDistances(lstdist); dists = new List<DistanceClass>(); dists = DistanceClass.ParseEDSM(json, ref lstdist); if (json == null) LogText("No response from server." + Environment.NewLine); else LogText("Found " + dists.Count.ToString() + " new distances." + Environment.NewLine); Application.DoEvents(); DistanceClass.Store(dists); _db.PutSettingString("EDSCLastDist", lstdist); } _db.GetAllDistances(EDDConfig.UseDistances); // Load user added distances updateMapData(); OnDistancesLoaded(); GC.Collect(); } catch (Exception ex) { LogText("GetEDSMDistances exception:" + ex.Message + Environment.NewLine); LogText(ex.StackTrace + Environment.NewLine); } }