private bool DownloadMapFile(string file) { EDDBClass eddb = new EDDBClass(); bool newfile = false; if (eddb.DownloadFile("http://eddiscovery.astronet.se/Maps/" + file, Path.Combine(Tools.GetAppDataDirectory(), "Maps\\" + file), out newfile)) { if (newfile) LogText("Downloaded map: " + file + Environment.NewLine); return true; } else return false; }
private void SyncAllEDSMSystems() { try { EDDBClass eddb = new EDDBClass(); EDSMClass edsm = new EDSMClass(); string edsmsystems = Path.Combine(Tools.GetAppDataDirectory(), "edsmsystems.json"); bool newfile = false; string rwsysfiletime = "2014-01-01 00:00:00"; LogText("Get systems from EDSM." + Environment.NewLine); eddb.DownloadFile("http://www.edsm.net/dump/systemsWithCoordinates.json", edsmsystems, out newfile); if (newfile) { LogText("Adding EDSM systems." + Environment.NewLine); _db.GetAllSystems(); string json = LoadJsonFile(edsmsystems); List<SystemClass> systems = SystemClass.ParseEDSM(json, ref rwsysfiletime); List<SystemClass> systems2Store = new List<SystemClass>(); foreach (SystemClass system in systems) { // Check if sys exists first SystemClass sys = SystemData.GetSystem(system.name); if (sys == null) systems2Store.Add(system); else if (!sys.name.Equals(system.name) || sys.x != system.x || sys.y!=system.y || sys.z != system.z) // Case or position changed systems2Store.Add(system); } SystemClass.Store(systems2Store); systems.Clear(); systems = null; systems2Store.Clear(); systems2Store = null; json = null; _db.PutSettingString("EDSMLastSystems", rwsysfiletime); _db.GetAllSystems(); } else LogText("No new file." + Environment.NewLine); string retstr = edsm.GetNewSystems(_db); Invoke((MethodInvoker)delegate { TravelHistoryControl.LogText(retstr); }); GC.Collect(); } catch (Exception ex) { Invoke((MethodInvoker)delegate { TravelHistoryControl.LogText("GetAllEDSMSystems exception:" + ex.Message + Environment.NewLine); }); } }