protected void ExportFile() { var dialog = new SaveFileDialog() { Title = MainFormStrings.Export, Filter = "Sliding Universal Score(*.sus)|*.sus" }; if (dialog.ShowDialog(this) != DialogResult.OK) { return; } var susArgs = ScoreBook.ExporterArgs.ContainsKey("sus") ? ScoreBook.ExporterArgs["sus"] as Components.Exporter.SusArgs : new Components.Exporter.SusArgs(); var vm = new SusExportWindowViewModel(ScoreBook, susArgs); var window = new SusExportWindow() { DataContext = vm }; var result = window.ShowDialog(this); if (!result.HasValue || !result.Value) { return; } var exporter = new Components.Exporter.SusExporter() { CustomArgs = susArgs }; var exportData = new ExportData() { OutputPath = dialog.FileName, Exporter = exporter }; HandleExport(exportData); if (!ScoreBook.ExporterArgs.ContainsKey("sus")) { ScoreBook.ExporterArgs["sus"] = susArgs; } LastExportData = exportData; }
public void Export(IScoreBookExportPluginArgs args) { var book = args.GetScoreBook(); SusArgs susArgs = JsonConvert.DeserializeObject <SusArgs>(args.GetCustomData() ?? "") ?? new SusArgs(); if (!args.IsQuick) { var vm = new SusExportWindowViewModel(book, susArgs); var window = new SusExportWindow() { DataContext = vm }; var result = window.ShowDialog(); if (!result.HasValue || !result.Value) { throw new UserCancelledException(); } args.SetCustomData(JsonConvert.SerializeObject(susArgs)); } var exporter = new SusExporter(book, susArgs); exporter.Export(args.Stream); }