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:
@@ -10,6 +10,7 @@ using Elwig.Helpers.Billing;
|
||||
using Elwig.Models.Entities;
|
||||
using ScottPlot.Plottables;
|
||||
using ScottPlot;
|
||||
using Elwig.Services;
|
||||
|
||||
namespace Elwig.Windows {
|
||||
public partial class ChartWindow : ContextWindow {
|
||||
@@ -82,9 +83,7 @@ namespace Elwig.Windows {
|
||||
|
||||
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
|
||||
if (HasChanged) {
|
||||
var r = MessageBox.Show("Soll das Fenster wirklich geschlossen werden? Nicht gespeicherte Änderungen werden NICHT übernommen!", "Schließen bestätigen",
|
||||
MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
|
||||
if (r != MessageBoxResult.Yes) {
|
||||
if (!InteractionService.AskConfirmation("Schließen bestätigen", "Soll das Fenster wirklich geschlossen werden? Nicht gespeicherte Änderungen werden NICHT übernommen!")) {
|
||||
e.Cancel = true;
|
||||
return;
|
||||
}
|
||||
@@ -110,18 +109,17 @@ namespace Elwig.Windows {
|
||||
..paymentEntries,
|
||||
..await data.GetQualityGraphEntries(ctx, Season, paymentEntries.Any() ? paymentEntries.Max(e => e.Id) : 0)
|
||||
];
|
||||
} catch (KeyNotFoundException ex) {
|
||||
var key = ex.Message.Split('\'')[1].Split('\'')[0];
|
||||
MessageBox.Show($"Fehler beim Laden der Auszahlungsvariante:\n\n" +
|
||||
$"Mit unbekanntem Attribut '{key}' kann nicht umgegangen werden.", "Fehler",
|
||||
MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
} catch (KeyNotFoundException exc) {
|
||||
var key = exc.Message.Split('\'')[1].Split('\'')[0];
|
||||
InteractionService.ShowError("Fehler",
|
||||
$"Fehler beim Laden der Auszahlungsvariante:\n\n" +
|
||||
$"Mit unbekanntem Attribut '{key}' kann nicht umgegangen werden.");
|
||||
} catch (ArgumentException) {
|
||||
MessageBox.Show($"Fehler beim Laden der Auszahlungsvariante:\n\n" +
|
||||
$"Die Daten der Auszahlungsvariante entsprechen nicht dem benötigtem Format.", "Fehler",
|
||||
MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
} catch (Exception ex) {
|
||||
MessageBox.Show("Fehler beim Laden der Auszahlungsvariante:\n\n" + ex.Message, "Fehler",
|
||||
MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
InteractionService.ShowError("Fehler",
|
||||
$"Fehler beim Laden der Auszahlungsvariante:\n\n" +
|
||||
$"Die Daten der Auszahlungsvariante entsprechen nicht dem benötigtem Format.");
|
||||
} catch (Exception exc) {
|
||||
InteractionService.ShowException("Fehler", "Fehler beim Laden der Auszahlungsvariante", exc);
|
||||
}
|
||||
Vaributes = await Utils.GetVaributeList(ctx, Year);
|
||||
GraphEntries.ForEach(e => {
|
||||
@@ -622,11 +620,7 @@ namespace Elwig.Windows {
|
||||
private void DeleteButton_Click(object sender, RoutedEventArgs e) {
|
||||
if (SelectedGraphEntry == null) return;
|
||||
|
||||
var r = MessageBox.Show(
|
||||
$"Soll die Kurve {SelectedGraphEntry.Id} (verwendet in folgenden Verträgen: {SelectedGraphEntry.VaributeStringSimple}) wirklich gelöscht werden?",
|
||||
"Kurve löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
|
||||
|
||||
if (r == MessageBoxResult.Yes) {
|
||||
if (InteractionService.AskConfirmation("Kurve löschen", $"Soll die Kurve {SelectedGraphEntry.Id} (verwendet in folgenden Verträgen: {SelectedGraphEntry.VaributeStringSimple}) wirklich gelöscht werden?")) {
|
||||
GraphEntries.Remove(SelectedGraphEntry);
|
||||
SetHasChanged();
|
||||
GraphList.Items.Refresh();
|
||||
@@ -651,9 +645,7 @@ namespace Elwig.Windows {
|
||||
});
|
||||
} catch (Exception exc) {
|
||||
Mouse.OverrideCursor = null;
|
||||
var str = "Der Eintrag konnte nicht in der Datenbank gespeichert werden!\n\n" + exc.Message;
|
||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||
MessageBox.Show(str, "Auszahlungsvariante speichern", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
InteractionService.ShowDbException("Auszahlungsvariante speichern", exc);
|
||||
SaveButton.IsEnabled = true;
|
||||
return;
|
||||
}
|
||||
@@ -664,9 +656,9 @@ namespace Elwig.Windows {
|
||||
await b.Calculate(false);
|
||||
});
|
||||
} catch (KeyNotFoundException exc) {
|
||||
MessageBox.Show(exc.Message, "Noch nicht alle Preise festgelegt", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
InteractionService.ShowInformation("Noch nicht alle Preise festgelegt", exc.Message);
|
||||
} catch (Exception exc) {
|
||||
MessageBox.Show(exc.Message, "Berechnungsfehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
InteractionService.ShowException("Berechnungsfehler", exc);
|
||||
}
|
||||
|
||||
LockContext = false;
|
||||
@@ -773,9 +765,7 @@ namespace Elwig.Windows {
|
||||
if (ge != SelectedGraphEntry && ge.Abgewertet == SelectedGraphEntry?.Abgewertet) {
|
||||
var toRemove = ge.Vaributes.Where(c => c.Listing.Equals(varibute)).ToList();
|
||||
if (toRemove.Count == 0) continue;
|
||||
var r = MessageBox.Show($"Achtung: {string.Join(", ", toRemove)} ist bereits in Kurve {ge.Id} in Verwendung!\nSoll die Zuweisung dort entfernt werden?", "Entfernen bestätigen",
|
||||
MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
|
||||
if (r != MessageBoxResult.Yes) {
|
||||
if (!InteractionService.AskConfirmation("Entfernen bestätigen", $"Achtung: {string.Join(", ", toRemove)} ist bereits in Kurve {ge.Id} in Verwendung!\nSoll die Zuweisung dort entfernt werden?")) {
|
||||
return false;
|
||||
}
|
||||
ge.Vaributes.RemoveAll(c => c.Listing.Equals(varibute));
|
||||
|
||||
Reference in New Issue
Block a user