public void Show(IInfo info) { HtmlExport exp = new HtmlExport(); string path = info.GetTemp("kfpl.html"); bool tryoutConsole = info.Settings.Get <bool>("kfpl.console"); bool success = exp.Exp(info.Timetable, path, info, tryoutConsole); if (success) { Process.Start(path); } }
public TempLogger(IInfo info) { filename = info.GetTemp("fpledit_log.txt"); var fi = new FileInfo(filename); if (fi.Exists && fi.Length > 10240) // > 10KB { fi.Delete(); } Info("FPLedit Programmstart"); }
private void StartNetwork(int route) { var backupHandle = info.BackupTimetable(); try { bool showMessage = info.Settings.Get("jTGStarter.show-message", true); if (showMessage) { DialogResult res = MessageBox.Show("Dies speichert die aktuell ausgewählte Route in eine temporäre Datei und öffnet dann jTrainGraph (>= 2.02). Nachdem Sie die Arbeit in jTrainGraph beendet haben, speichern Sie damit die Datei und schließen das jTrainGraph-Hauptfenster, damit werden alle Änderungen an den Bildfahrplaneinstellungen übernommen." + Environment.NewLine + "ACHTUNG: Es werden nur Änderungen an der Bildfahrplandarstellung übernommen, alle anderen Änderungen (z.B. Bahnhöfe oder Züge einfügen) werden verworfen! Aktion fortsetzen?" + Environment.NewLine + Environment.NewLine + "Diese Meldung kann unter jTrainGraph > Einstellungen deaktiviert werden.", "jTrainGraph starten (aktuelle Route)", MessageBoxButtons.YesNo, MessageBoxType.Warning); if (res != DialogResult.Yes) { return; } } var targetVersion = info.Settings.GetEnum("jTGStarter.target-version", JTGShared.DEFAULT_TT_VERSION); var exporter = new Shared.Filetypes.XMLExport(); var importer = new Shared.Filetypes.XMLImport(); var sync = new TimetableRouteSync(info.Timetable, route); var rtt = sync.GetRouteTimetable(targetVersion); var fn = info.GetTemp(Guid.NewGuid().ToString() + "-route-" + route + ".fpl"); exporter.Export(rtt, fn, info); StartJtg(fn, () => { info.StageUndoStep(); var crtt = importer.Import(fn, info, new SilentLogger(info.Logger)); sync.SyncBack(crtt); info.SetUnsaved(); }); info.ClearBackup(backupHandle); } catch (Exception e) { info.Logger.Error("Beim Verwenden von jTrainGraph ist ein unerwarteter Fehler aufgetreten! " + e); info.Logger.LogException(e); info.RestoreTimetable(backupHandle); } }
public void Report(CrashReport report) { var reportText = report.Serialize(); try { var dir = info.GetTemp(REPORT_DIR); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } var fn_tt = info.GetTemp(REPORT_DIR + "crash_tt.fpl"); if (info.Timetable != null) { new Shared.Filetypes.XMLExport().Export(info.Timetable, fn_tt, info); } else if (File.Exists(fn_tt)) { File.Delete(fn_tt); } var fn_report = info.GetTemp(REPORT_DIR + "crash_report.xml"); File.WriteAllText(fn_report, reportText); var fn_fileinfo = info.GetTemp(CRASH_DIR + "crash.file"); File.WriteAllText(fn_fileinfo, info.FileState.FileName); var fn_crash = info.GetTemp(CRASH_DIR + "crash.flag"); File.WriteAllText(fn_crash, "1"); MessageBox.Show("Es ist ein unerwarteter Fehler in FPLedit aufgetreten." + Environment.NewLine + Environment.NewLine + "FPLedit wird neu gestartet. Möglicherweise ist eine Wiederherstellung möglich.", MessageBoxType.Error); } catch { MessageBox.Show("Es ist ein unerwarteter Fehler in FPLedit aufgetreten. Es konnten keine weiteren Informationen gespeichert werden. FPLedit wird neu gestartet."); } }
public void Init(IInfo info) { XMLEntity last = new XMLEntity("dummy"); this.info = info; session = Guid.NewGuid().ToString(); basePath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "ttDumps", session); dir = new DirectoryInfo(basePath); if (!dir.Exists) { dir.Create(); } // Log UI interaction FFormHandler.Init += (se, a) => { var w = (Window)se; var n = w.GetType().FullName; w.Shown += (s, e) => info.Logger.Debug("Form shown: " + n); w.Closed += (s, e) => info.Logger.Debug("Form closed: " + n); }; var logPath = Path.Combine(basePath, "session.log"); dynamic l = info.Logger; l.Loggers.Add(new FileLogger(logPath)); // Log Timetable changes info.FileStateChanged += (s, e) => { try { if (info.Timetable == null || XDiff(last, info.Timetable.XMLEntity)) { return; } var clone = info.Timetable.Clone(); var exp = new XMLExport(); var fn = Path.Combine(basePath, $"fpldump-{sessionCounter++}.fpl"); var x = new XMLEntity("dump-info"); x.SetAttribute("session", session); x.SetAttribute("date", DateTime.Now.ToShortDateString()); x.SetAttribute("time", DateTime.Now.ToShortTimeString()); x.SetAttribute("pf", Environment.OSVersion.Platform.ToString()); clone.Children.Add(x); exp.Export(clone, fn, info); info.Logger.Debug("Dump erstellt: " + fn); var clone2 = info.Timetable.Clone(); last = clone2.XMLEntity; } catch { } }; info.ExtensionsLoaded += (s, e) => { info.Logger.Info("DebugDump aktiviert. Session: " + session); info.Logger.Debug("Enabled extensions: " + info.Settings.Get("extmgr.enabled", "")); }; var tmpDir = info.GetTemp(""); var watcher = new FileSystemWatcher(tmpDir, "*.*") { NotifyFilter = NotifyFilters.LastWrite }; watcher.Changed += WatcherEvent; watcher.Created += WatcherEvent; watcher.EnableRaisingEvents = true; }