public void TriggerEDSMRefresh() { SQLiteDBClass db = new SQLiteDBClass(); EDSMClass edsm = new EDSMClass(); edsm.GetNewSystems(db); db.GetAllSystems(); }
/* * private void GetRedWizzardFiles() * { * WebClient web = new WebClient(); * * try * { * LogText("Checking for new EDDiscovery data" + Environment.NewLine); * * //GetNewRedWizzardFile(_fileTgcSystems, "http://robert.astronet.se/Elite/ed-systems/tgcsystems.json"); * //GetNewRedWizzardFile(fileTgcDistances, "http://robert.astronet.se/Elite/ed-systems/tgcdistances.json"); * } * catch (Exception ex) * { * LogText("GetRedWizzardFiles exception:" + ex.Message + Environment.NewLine); * return; * } * } * * private void GetNewRedWizzardFile(string filename, string url) * { * string etagFilename = filename + ".etag"; * * var request = (HttpWebRequest) HttpWebRequest.Create(url); * request.UserAgent = "EDDiscovery v" + Assembly.GetExecutingAssembly().FullName.Split(',')[1].Split('=')[1]; * request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; * * if (File.Exists(etagFilename)) * { * var etag = File.ReadAllText(etagFilename); * if (etag != "") * { * request.Headers[HttpRequestHeader.IfNoneMatch] = etag; * } * } * * try { * var response = (HttpWebResponse) request.GetResponse(); * * LogText("Downloading " + filename + "..." + Environment.NewLine); * * File.WriteAllText(filename + ".etag.tmp", response.Headers[HttpResponseHeader.ETag]); * var destFileStream = File.Open(filename + ".tmp", FileMode.Create, FileAccess.Write); * response.GetResponseStream().CopyTo(destFileStream); * * destFileStream.Close(); * response.Close(); * * if (File.Exists(filename)) * File.Delete(filename); * if (File.Exists(etagFilename)) * File.Delete(etagFilename); * * File.Move(filename + ".tmp", filename); * File.Move(etagFilename + ".tmp", etagFilename); * } catch (WebException e) * { * var code = ((HttpWebResponse) e.Response).StatusCode; * if (code == HttpStatusCode.NotModified) * { * LogText(filename + " is up to date." + Environment.NewLine); * } else * { * throw e; * } * } * } */ private void GetEDSMSystems() { try { EDSMClass edsm = new EDSMClass(); string rwsystime = _db.GetSettingString("EDSMLastSystems", "2000-01-01 00:00:00"); // Latest time from RW file. CommanderName = EDDConfig.CurrentCommander.Name; //Invoke((MethodInvoker) delegate { // travelHistoryControl1.textBoxCmdrName.Text = CommanderName; //}); // List<SystemClass> systems = SystemClass.ParseEDSC(json, ref rwsysfiletime); DateTime edsmdate = DateTime.Parse(rwsystime, new CultureInfo("sv-SE")); if (DateTime.Now.Subtract(edsmdate).TotalDays > 7) // Over 7 days do a sync from EDSM { SyncAllEDSMSystems(); } else { if (CanSkipSlowUpdates()) { LogLine("Skipping loading updates (DEBUG option)."); LogLine(" Need to turn this back on again? Look in the Settings tab."); } else { 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("GetEDSMSystems exception:" + ex.Message + Environment.NewLine); TravelHistoryControl.LogText(ex.StackTrace + Environment.NewLine); }); } GC.Collect(); }
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 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); }); } }