Elwig: Add InteractionService to centrally manage MessageBox and SaveFileDialogs
Test / Run tests (push) Successful in 2m50s
Test / Run tests (push) Successful in 2m50s
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
using Elwig.Helpers;
|
||||
using Elwig.Helpers.Export;
|
||||
using Microsoft.Win32;
|
||||
using Elwig.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
@@ -42,9 +42,9 @@ namespace Elwig.Windows {
|
||||
Mouse.OverrideCursor = Cursors.Wait;
|
||||
await DisplayQuery(QueryInput.Text);
|
||||
Mouse.OverrideCursor = null;
|
||||
} catch (Exception e) {
|
||||
} catch (Exception exc) {
|
||||
Mouse.OverrideCursor = null;
|
||||
MessageBox.Show(e.Message, "Fehler beim Ausführen", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
InteractionService.ShowException("Fehler beim Ausführen", exc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,21 +85,16 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private static async Task SaveQuery(string sqlQuery) {
|
||||
var d = new SaveFileDialog() {
|
||||
FileName = $"Abfrage.csv",
|
||||
DefaultExt = "csv",
|
||||
Filter = "CSV-Datei (*.csv)|*.csv",
|
||||
Title = $"Datenbank Abfrage speichern unter - Elwig"
|
||||
};
|
||||
if (d.ShowDialog() == true) {
|
||||
var filename = InteractionService.SaveFile("Datenbank Abfrage", "Abfrage", "csv");
|
||||
if (filename != null) {
|
||||
Mouse.OverrideCursor = Cursors.Wait;
|
||||
await Task.Run(async () => {
|
||||
try {
|
||||
var (header, rows) = await ExecuteQuery(sqlQuery);
|
||||
using var csv = new CsvSimple(d.FileName, ';', Utils.UTF8BOM);
|
||||
using var csv = new CsvSimple(filename, ';', Utils.UTF8BOM);
|
||||
await csv.ExportAsync(rows.Prepend([.. header.Select(h => h.ColumnName)]));
|
||||
} catch (Exception exc) {
|
||||
MessageBox.Show(exc.Message, "Fehler beim Ausführen", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
InteractionService.ShowException("Fehler beim Ausführen", exc);
|
||||
}
|
||||
});
|
||||
Mouse.OverrideCursor = null;
|
||||
|
||||
Reference in New Issue
Block a user