Beispiel #1
0
        public static bool Write(bool overwrite)
        {
            string filename;

            if (overwrite && path != null)
            {
                filename = path;
            }
            else
            {
                Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
                dlg.Filter = "CC Files (*.cc)|*.cc";
                bool?result = dlg.ShowDialog();
                if (result == false)
                {
                    return(false);
                }
                filename = dlg.FileName;
            }

            string p = Path.ChangeExtension(filename, ".cc");

            using (DataSet dataSet = new DataSet("Cuelist"))
            {
                dataSet.Tables.Add(GetSettingsTable());
                dataSet.Tables.Add(CuelistCtrl.GetCueTable());
                dataSet.Tables.Add(ScriptlistCtrl.GetScriptTable());
                dataSet.Tables.Add(BeamerlistCtrl.GetBeamerTable());
                dataSet.Tables.Add(MidiController.GetMidiMapTable());

                try { dataSet.WriteXml(p); }
                catch (Exception e)
                {
                    LogCtrl.Error(e.Message);
                    DialogCtrl.Show(DialogType.ERROR, OptionType.OKCANCEL, "Error", "Couldn't write file!");
                    return(false);
                }
            }

            SetPath(p);
            CuelistCtrl.saved = true;
            RecentFilesCtrl.Add(p);
            LogCtrl.Status("Saved file: " + p);
            return(true);
        }
Beispiel #2
0
        public static void Read(string filename)
        {
            if (!CuelistCtrl.saved)
            {
                bool?result = DialogCtrl.Show(DialogType.QUESTION, OptionType.YESNO, "Open Cuelist", "Do you want to save the current cuelist?");
                if (result == true)
                {
                    if (!Write(false))
                    {
                        return;
                    }
                }
            }

            if (filename == null)
            {
                Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
                dlg.Filter = "CC Files (*.cc)|*.cc";
                bool?result = dlg.ShowDialog();

                if (result == true)
                {
                    filename = dlg.FileName;
                }
                else
                {
                    return;
                }
            }

            using (DataSet dataSet = new DataSet("Cuelist"))
            {
                try { dataSet.ReadXml(filename); }
                catch (Exception e)
                {
                    LogCtrl.Error(e.Message);
                    DialogCtrl.Show(DialogType.ERROR, OptionType.OKCANCEL, "Error", "Can't open file!");
                    return;
                }
                DataTableCollection collection = dataSet.Tables;

                ClearCuelist();

                for (int i = 0; i < collection.Count; i++)
                {
                    DataTable table = collection[i];
                    switch (table.TableName)
                    {
                    case "Settings":
                        SetSettingsFromTable(table);
                        break;

                    case "Script":
                        ScriptlistCtrl.LoadScripts(table);
                        break;

                    case "Beamer":
                        BeamerlistCtrl.LoadBeamers(table);
                        break;

                    case "MidiMap":
                        MidiController.LoadMidiMap(table);
                        break;

                    default:
                        CuelistCtrl.SetCuesFromTable(table);
                        break;
                    }
                }
            }

            CuelistCtrl.saved = true;
            SetPath(filename);
            CuelistCtrl.DisableEditMode();
            RecentFilesCtrl.Add(filename);
            LogCtrl.Status("Open file: " + filename);
        }