private MemoryStream SaveToExcel(string outputDir, bool getMemoryStream) { // grab the invoice title string title = GetInvoiceTitle(); // finally, write the data and save the spreadsheet SetStatusBar("Exporting Spreadsheet", StatusBarState.InProgress); MemoryStream ms = null; try { ExcelWriter excelWriter = new ExcelWriter(outputDir, title, Configuration.SenderEmailAddress, Configuration.RecipientEmailAddress); excelWriter.AddItems(this._view.ItemsListEntries.ToList()); if (getMemoryStream) { ms = excelWriter.CloseAndGetMemoryStream(); } else { excelWriter.CloseAndSave(); } } catch (Exception) { // it failed // tell the user via a dialog and reset the status bar // TODO: log error this._view.ShowErrorDialogOk("Error exporting spreadsheet"); SetStatusBar("Ready", StatusBarState.Ready); return(null); } // it succeeded // tell the user via a dialog and reset the status bar this._view.ShowSuccessDialog("Exported spreadsheet"); SetStatusBar("Ready", StatusBarState.Ready); return(ms); }