private void HandleExport(ScoreBook book, ExportContext context) { CommitChanges(); string message; bool hasError = true; try { context.Export(book); message = ErrorStrings.ExportComplete; hasError = false; ExportManager.CommitExported(context); } catch (UserCancelledException) { // Do nothing return; } catch (InvalidTimeSignatureException ex) { int beatAt = ex.Tick / ScoreBook.Score.TicksPerBeat + 1; message = string.Format(ErrorStrings.InvalidTimeSignature, beatAt); } catch (Exception ex) { Program.DumpExceptionTo(ex, "export_exception.json"); message = ErrorStrings.ExportFailed + Environment.NewLine + ex.Message; } ShowDiagnosticsResult(MainFormStrings.Export, message, hasError, context.Diagnostics); }