private void GetEDSCSystems() { try { SQLiteDBClass db = new SQLiteDBClass(); EDSMClass edsm = new EDSMClass(); string json; string rwsystime = db.GetSettingString("RWLastSystems", "2000-01-01 00:00:00"); // Latest time from RW file. string rwsysfiletime = ""; CommanderName = db.GetSettingString("CommanderName", ""); Invoke((MethodInvoker) delegate { travelHistoryControl1.textBoxCmdrName.Text = CommanderName; }); json = LoadJsonArray(fileTgcSystems); List<SystemClass> systems = SystemClass.ParseEDSC(json, ref rwsysfiletime); if (!rwsystime.Equals(rwsysfiletime)) // New distance file from Redwizzard { SystemClass.Delete(SystemStatusEnum.EDSC); // Remove all EDSC systems. db.PutSettingString("RWLastSystems", rwsysfiletime); db.PutSettingString("EDSMLastSystems", rwsysfiletime); Invoke((MethodInvoker) delegate { TravelHistoryControl.LogText("Adding data from tgcsystems.json " + Environment.NewLine); }); SystemClass.Store(systems); EDDBClass eddb = new EDDBClass(); DBUpdateEDDB(eddb); } string retstr = edsm.GetNewSystems(db); Invoke((MethodInvoker)delegate { TravelHistoryControl.LogText(retstr); }); db.GetAllSystemNotes(); db.GetAllSystems(); SystemNames.Clear(); foreach (SystemClass system in SystemData.SystemList) { SystemNames.Add(system.name); } } catch (Exception ex) { Invoke((MethodInvoker) delegate { TravelHistoryControl.LogText("GetEDSCSystems exception:" + ex.Message + Environment.NewLine); }); } }
private void GetEDDBUpdate() { try { EDDBClass eddb = new EDDBClass(); string timestr; DateTime time; Thread.Sleep(1000); SQLiteDBClass db = new SQLiteDBClass(); timestr = db.GetSettingString("EDDBSystemsTime", "0"); time = new DateTime(Convert.ToInt64(timestr), DateTimeKind.Utc); bool updatedb = false; if (DateTime.UtcNow.Subtract(time).TotalDays > 0.5) { LogText("Get systems from EDDB. "); if (eddb.GetSystems()) { LogText("OK." + Environment.NewLine); db.PutSettingString("EDDBSystemsTime", DateTime.UtcNow.Ticks.ToString()); updatedb = true; } else LogText("Failed." + Environment.NewLine, Color.Red); eddb.GetCommodities(); } timestr = db.GetSettingString("EDDBStationsLiteTime", "0"); time = new DateTime(Convert.ToInt64(timestr), DateTimeKind.Utc); if (DateTime.UtcNow.Subtract(time).TotalDays > 0.5) { LogText("Get stations from EDDB. "); if (eddb.GetStationsLite()) { LogText("OK." + Environment.NewLine); db.PutSettingString("EDDBStationsLiteTime", DateTime.UtcNow.Ticks.ToString()); updatedb = true; } else LogText("Failed." + Environment.NewLine, Color.Red); } if (updatedb) { DBUpdateEDDB(eddb); } return; } catch (Exception ex) { Invoke((MethodInvoker)delegate { TravelHistoryControl.LogText("GetEDSCSystems exception:" + ex.Message + Environment.NewLine); }); } }
private void DBUpdateEDDB(EDDBClass eddb) { List<SystemClass> eddbsystems = eddb.ReadSystems(); List<StationClass> eddbstations = eddb.ReadStations(); LogText("Add new EDDB data to database." + Environment.NewLine); eddb.Add2DB(eddbsystems, eddbstations); }
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); } }
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); }); } }