public void UpdatedWithAddNewEntry(HistoryEntry he, HistoryList hl, bool accepted) // main travel grid calls after getting a new entry { try { // try is a bit old, probably do not need it. if (he.IsFSDJump) { int count = _discoveryForm.history.GetVisitsCount(he.System.name); _discoveryForm.LogLine(string.Format("Arrived at system {0} Visit No. {1}", he.System.name, count)); System.Diagnostics.Trace.WriteLine("Arrived at system: " + he.System.name + " " + count + ":th visit."); if (EDCommander.Current.SyncToEdsm == true) { EDSMSync.SendTravelLog(he); } } if (he.ISEDDNMessage) { if (EDCommander.Current.SyncToEddn == true) { EDDNSync.SendEDDNEvents(_discoveryForm, he); } } if (accepted) // if accepted it on main grid.. { RefreshTargetDisplay(); // tell the target system its changed the latest system if (EDDiscoveryForm.EDDConfig.FocusOnNewSystem) // Move focus to new row { userControlTravelGrid.SelectTopRow(); ShowSystemInformation(userControlTravelGrid.GetCurrentRow); UpdateDependentsWithSelection(); } } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine("Exception NewPosition: " + ex.Message); System.Diagnostics.Trace.WriteLine("Trace: " + ex.StackTrace); } }
// main travel grid has a new entry due to onNewEntry public void UpdatedWithAddNewEntry(HistoryEntry he, HistoryList hl, bool accepted) { try { // try is a bit old, probably do not need it. if (he.IsFSDJump) { int count = _discoveryForm.history.GetVisitsCount(he.System.name); _discoveryForm.LogLine(string.Format("Arrived at system {0} Visit No. {1}", he.System.name, count)); System.Diagnostics.Trace.WriteLine("Arrived at system: " + he.System.name + " " + count + ":th visit."); if (EDCommander.Current.SyncToEdsm == true) { EDSMSync.SendTravelLog(he); _discoveryForm.ActionRunOnEntry(he, Actions.ActionEventEDList.onEDSMSync); } } hl.SendEDSMStatusInfo(he, true); if (he.ISEDDNMessage && he.AgeOfEntry() < TimeSpan.FromDays(1.0)) { if (EDCommander.Current.SyncToEddn == true) { EDDNSync.SendEDDNEvents(_discoveryForm.LogLine, he); _discoveryForm.ActionRunOnEntry(he, Actions.ActionEventEDList.onEDDNSync); } } if (he.EntryType == JournalTypeEnum.Scan) { if (EDCommander.Current.SyncToEGO) { EDDiscoveryCore.EGO.EGOSync.SendEGOEvents(_discoveryForm.LogLine, he); _discoveryForm.ActionRunOnEntry(he, Actions.ActionEventEDList.onEGOSync); } } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine("Exception NewPosition: " + ex.Message); System.Diagnostics.Trace.WriteLine("Trace: " + ex.StackTrace); } }
internal long GetNewSystems(EDDiscoveryForm discoveryform, Func<bool> cancelRequested, Action<int, string> reportProgress) { string lstsyst; DateTime lstsystdate; // First system in EDSM is from 2015-05-01 00:39:40 DateTime gammadate = new DateTime(2015, 5, 1, 0, 0, 0, DateTimeKind.Utc); if (SystemClass.GetTotalSystems() == 0) { lstsystdate = gammadate; } else { // Get the most recent modify time returned from EDSM lstsystdate = SystemClass.GetLastSystemModifiedTime() - TimeSpan.FromSeconds(1); if (lstsystdate < gammadate) { lstsystdate = gammadate; } } lstsyst = lstsystdate.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); Console.WriteLine("EDSM Check date: " + lstsyst); long updates = 0; while (lstsystdate < DateTime.UtcNow) { if (cancelRequested()) return updates; DateTime enddate = lstsystdate + TimeSpan.FromHours(12); if (enddate > DateTime.UtcNow) { enddate = DateTime.UtcNow; } discoveryform.LogLine($"Downloading systems from {lstsystdate.ToLocalTime().ToString()} to {enddate.ToLocalTime().ToString()}"); reportProgress(-1, "Requesting systems from EDSM"); string json = RequestSystems(lstsystdate, enddate); if (json == null) { reportProgress(-1, "EDSM request failed"); discoveryform.LogLine("Download of EDSM systems from the server failed, will try next time program is run"); break; } updates += SystemClass.ParseEDSMUpdateSystemsString(json, ref lstsyst, false, discoveryform, cancelRequested, reportProgress, false); lstsystdate += TimeSpan.FromHours(12); } discoveryform.LogLine($"System download complete"); return updates; }
internal long GetNewSystems(EDDiscoveryForm discoveryform, Func<bool> cancelRequested, Action<int, string> reportProgress) { string lstsyst; DateTime lstsystdate; // First system in EDSM is from 2015-05-01 00:39:40 DateTime gammadate = new DateTime(2015, 5, 1, 0, 0, 0, DateTimeKind.Utc); bool outoforder = SQLiteConnectionSystem.GetSettingBool("EDSMSystemsOutOfOrder", true); if (SystemClass.IsSystemsTableEmpty()) { lstsystdate = gammadate; } else { // Get the most recent modify time returned from EDSM DateTime lastmod = outoforder ? SystemClass.GetLastSystemModifiedTime() : SystemClass.GetLastSystemModifiedTimeFast(); lstsystdate = lastmod - TimeSpan.FromSeconds(1); if (lstsystdate < gammadate) { lstsystdate = gammadate; } } lstsyst = lstsystdate.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); Console.WriteLine("EDSM Check date: " + lstsyst); long updates = 0; while (lstsystdate < DateTime.UtcNow) { if (cancelRequested()) return updates; DateTime enddate = lstsystdate + TimeSpan.FromHours(12); if (enddate > DateTime.UtcNow) { enddate = DateTime.UtcNow; } discoveryform.LogLine($"Downloading systems from {lstsystdate.ToLocalTime().ToString()} to {enddate.ToLocalTime().ToString()}"); reportProgress(-1, "Requesting systems from EDSM"); string json = null; try { json = RequestSystems(lstsystdate, enddate); } catch (WebException ex) { reportProgress(-1, $"EDSM request failed"); if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null && ex.Response is HttpWebResponse) { string status = ((HttpWebResponse)ex.Response).StatusDescription; discoveryform.LogLine($"Download of EDSM systems from the server failed ({status}), will try next time program is run"); } else { discoveryform.LogLine($"Download of EDSM systems from the server failed ({ex.Status.ToString()}), will try next time program is run"); } break; } catch (Exception ex) { reportProgress(-1, $"EDSM request failed"); discoveryform.LogLine($"Download of EDSM systems from the server failed ({ex.Message}), will try next time program is run"); break; } if (json == null) { reportProgress(-1, "EDSM request failed"); discoveryform.LogLine("Download of EDSM systems from the server failed (no data returned), will try next time program is run"); break; } updates += SystemClass.ParseEDSMUpdateSystemsString(json, ref lstsyst, ref outoforder, false, discoveryform, cancelRequested, reportProgress, false); lstsystdate += TimeSpan.FromHours(12); } discoveryform.LogLine($"System download complete"); return updates; }
internal static bool SendTravelLog(EDSMClass edsm, VisitedSystemsClass system, EDDiscoveryForm mainform) { string json; if (!system.HasTravelCoordinates) json = edsm.SetLog(system.Name, system.Time); else json = edsm.SetLogWithPos(system.Name, system.Time, system.X, system.Y, system.Z); if (json != null) { JObject msg = (JObject)JObject.Parse(json); int msgnum = msg["msgnum"].Value<int>(); string msgstr = msg["msg"].Value<string>(); if (msgnum == 100 || msgnum == 401 || msgnum == 402 || msgnum == 403) { system.EDSM_sync = true; system.Update(); return true; } else { if (mainform!=null) mainform.LogLine("EDSM sync ERROR:" + msgnum.ToString() + ":" + msgstr); System.Diagnostics.Trace.WriteLine("Error sync:" + msgnum.ToString() + " : " + system.Name); return false; } } else return false; }