Exemple #1
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();
        }
        /// <summary>
        /// Returns the next System Name for the theme
        /// </summary>
        /// <returns></returns>
        public string GetNextSystemName()
        {
            if (SystemNames == null || SystemNames.Count == 0)
            {
                return(NAME_UNAVAILABLE);
            }

            string nextName;

            do
            {
                nextName = SystemNames.Dequeue();
            } while (string.IsNullOrEmpty(nextName));

            //put the name at the end so we keep looping
            SystemNames.Enqueue(nextName);
            return(nextName);
        }