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); }
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); }