コード例 #1
0
        public void TriggerEDSMRefresh()
        {
            SQLiteDBClass db   = new SQLiteDBClass();
            EDSMClass     edsm = new EDSMClass();

            edsm.GetNewSystems(db);
            db.GetAllSystems();
        }
コード例 #2
0
        /*
         * 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();
        }
コード例 #3
0
        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);
                });
            }
        }
コード例 #4
0
        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);
                });
            }
        }