Exemplo n.º 1
0
        private void StartNetwork(int route)
        {
            var backupHandle = pluginInterface.BackupTimetable();

            try
            {
                var showMessage = pluginInterface.Settings.Get("jTGStarter.show-message", true);

                if (showMessage)
                {
                    DialogResult res = MessageBox.Show(T._("Dies speichert die aktuell ausgewählte Route in eine temporäre Datei und öffnet dann jTrainGraph. 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."
                                                           + "\nACHTUNG: Es werden nur Änderungen an der Bildfahrplandarstellung übernommen, alle anderen Änderungen (z.B. Bahnhöfe oder Züge einfügen) werden verworfen! Aktion fortsetzen?"
                                                           + "\n\nDiese Meldung kann unter jTrainGraph > Einstellungen deaktiviert werden."),
                                                       T._("jTrainGraph starten (aktuelle Route)"), MessageBoxButtons.YesNo, MessageBoxType.Warning);

                    if (res != DialogResult.Yes)
                    {
                        return;
                    }
                }

                var targetVersion = pluginInterface.Settings.GetEnum("jTGStarter.target-version", JtgShared.DEFAULT_TT_VERSION);

                if (targetVersion.GetVersionCompat().Compatibility != TtVersionCompatType.ReadWrite)
                {
                    throw new Exception(T._("Zielversion ist nicht R/W-Kompatibel. Bitte die Einstellungen überprüfen."));
                }
                if (pluginInterface.Timetable.Version.CompareTo(TimetableVersion.Extended_FPL2) >= 0 && targetVersion.CompareTo(TimetableVersion.JTG3_3) < 0)
                {
                    throw new Exception(T._("Die Erstellen einer linearen Datei der Version < 012 aus einer Datei der Version >= 101 ist nicht möglich!"));
                }
                if (pluginInterface.Timetable.Version.CompareTo(TimetableVersion.Extended_FPL2) < 0 && targetVersion.CompareTo(TimetableVersion.JTG3_3) >= 0)
                {
                    throw new Exception(T._("Die Erstellen einer linearen Datei der Version >= 012 aus einer Datei der Version 100 ist nicht möglich!"));
                }

                var exporter = new Shared.Filetypes.XMLExport();
                var importer = new Shared.Filetypes.XMLImport();
                var sync     = new TimetableRouteSync(pluginInterface.Timetable, route);
                var rtt      = sync.GetRouteTimetable(targetVersion);
                var fn       = pluginInterface.GetTemp(Guid.NewGuid() + "-route-" + route + ".fpl");
                exporter.SafeExport(rtt, fn, pluginInterface);

                StartJtg(fn, () =>
                {
                    pluginInterface.StageUndoStep();
                    var crtt = importer.SafeImport(fn, pluginInterface, new SilentLogger(pluginInterface.Logger));
                    sync.SyncBack(crtt);
                    pluginInterface.SetUnsaved();
                });
                pluginInterface.ClearBackup(backupHandle);
            }
            catch (Exception e)
            {
                pluginInterface.Logger.Error(T._("Beim Verwenden von jTrainGraph ist ein unerwarteter Fehler aufgetreten! {0}", e));
                pluginInterface.Logger.LogException(e);
                pluginInterface.RestoreTimetable(backupHandle);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }