App: Make HintContextChange() synchronous by using MainDispatcher
All checks were successful
Test / Run tests (push) Successful in 2m37s

This commit is contained in:
2024-09-12 11:40:32 +02:00
parent 5c08f61963
commit f09c43c1bd
18 changed files with 32 additions and 32 deletions

View File

@ -79,7 +79,7 @@ namespace Elwig {
} }
private static void OnContextChanged() { private static void OnContextChanged() {
MainDispatcher.BeginInvoke(async () => await HintContextChange()); MainDispatcher.BeginInvoke(HintContextChange);
} }
private static void OverrideCulture() { private static void OverrideCulture() {
@ -201,13 +201,13 @@ namespace Elwig {
BranchMobileNr = entry.Item8; BranchMobileNr = entry.Item8;
} }
public static async Task HintContextChange() { public static void HintContextChange() {
var ch = CurrentLastWrite; var ch = CurrentLastWrite;
if (ch > CurrentApp.LastChanged) if (ch > CurrentApp.LastChanged)
CurrentApp.LastChanged = ch; CurrentApp.LastChanged = ch;
foreach (Window w in CurrentApp.Windows) { foreach (Window w in CurrentApp.Windows) {
if (w is not ContextWindow c) continue; if (w is not ContextWindow c) continue;
await c.HintContextChange(); MainDispatcher.BeginInvoke(c.HintContextChange);
} }
} }

View File

@ -274,7 +274,7 @@ namespace Elwig.Helpers.Export {
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
await AddImportedFiles(Path.GetFileName(meta.FileName)); await AddImportedFiles(Path.GetFileName(meta.FileName));
} }
await App.HintContextChange(); App.HintContextChange();
MessageBox.Show( MessageBox.Show(
$"Das importieren der Daten war erfolgreich!\n" + $"Das importieren der Daten war erfolgreich!\n" +

View File

@ -136,7 +136,7 @@ namespace Elwig.Services {
} }
} }
await App.HintContextChange(); App.HintContextChange();
return newFbNr; return newFbNr;
} }

View File

@ -125,7 +125,7 @@ namespace Elwig.Services {
} }
} }
await App.HintContextChange(); App.HintContextChange();
return (year, dsnr, newMgNr, newSortId); return (year, dsnr, newMgNr, newSortId);
} }

View File

@ -177,7 +177,7 @@ namespace Elwig.Services {
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
} }
} }
} }

View File

@ -338,7 +338,7 @@ namespace Elwig.Services {
var b = new Billing(year); var b = new Billing(year);
await b.FinishSeason(); await b.FinishSeason();
await b.CalculateBuckets(); await b.CalculateBuckets();
await App.HintContextChange(); App.HintContextChange();
using var ctx = new AppDbContext(); using var ctx = new AppDbContext();
var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, year, m); var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, year, m);
@ -626,7 +626,7 @@ namespace Elwig.Services {
} }
} }
await App.HintContextChange(); App.HintContextChange();
return newMgNr; return newMgNr;
} }

View File

@ -209,7 +209,7 @@ namespace Elwig.Windows {
ctx.Remove(a); ctx.Remove(a);
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;

View File

@ -196,7 +196,7 @@ namespace Elwig.Windows {
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
MessageBox.Show(str, "Saison anlegen", MessageBoxButton.OK, MessageBoxImage.Error); MessageBox.Show(str, "Saison anlegen", MessageBoxButton.OK, MessageBoxImage.Error);
} }
await App.HintContextChange(); App.HintContextChange();
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
SeasonList.SelectedIndex = 0; SeasonList.SelectedIndex = 0;
} }
@ -219,7 +219,7 @@ namespace Elwig.Windows {
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
MessageBox.Show(str, "Saison löschen", MessageBoxButton.OK, MessageBoxImage.Error); MessageBox.Show(str, "Saison löschen", MessageBoxButton.OK, MessageBoxImage.Error);
} }
await App.HintContextChange(); App.HintContextChange();
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
} }
} }

View File

@ -340,7 +340,7 @@ namespace Elwig.Windows {
LockInputs(); LockInputs();
} }
await App.HintContextChange(); App.HintContextChange();
} }
private void FillInputs(ClientParameters p, Season? s) { private void FillInputs(ClientParameters p, Season? s) {

View File

@ -672,7 +672,7 @@ namespace Elwig.Windows {
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
LockContext = false; LockContext = false;
await App.HintContextChange(); App.HintContextChange();
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank gespeichert werden!\n\n" + exc.Message; 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; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;

View File

@ -313,7 +313,7 @@ namespace Elwig.Windows {
ctx.Remove(a); ctx.Remove(a);
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;

View File

@ -177,7 +177,7 @@ namespace Elwig.Windows {
ctx.Remove(s); ctx.Remove(s);
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;

View File

@ -515,7 +515,7 @@ namespace Elwig.Windows {
var b = new Billing(year); var b = new Billing(year);
await b.FinishSeason(); await b.FinishSeason();
await b.CalculateBuckets(); await b.CalculateBuckets();
await App.HintContextChange(); App.HintContextChange();
dcData[year] = await DeliveryConfirmationDeliveryData.ForSeason(ctx.DeliveryParts, year); dcData[year] = await DeliveryConfirmationDeliveryData.ForSeason(ctx.DeliveryParts, year);
} catch (Exception exc) { } catch (Exception exc) {

View File

@ -287,7 +287,7 @@ namespace Elwig.Windows {
var b = new Billing(year); var b = new Billing(year);
await b.FinishSeason(); await b.FinishSeason();
await b.CalculateBuckets(); await b.CalculateBuckets();
await App.HintContextChange(); App.HintContextChange();
using var ctx = new AppDbContext(); using var ctx = new AppDbContext();
var tbl1 = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, year); var tbl1 = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, year);
@ -326,7 +326,7 @@ namespace Elwig.Windows {
var b = new Billing(year); var b = new Billing(year);
await b.FinishSeason(); await b.FinishSeason();
await b.CalculateBuckets(); await b.CalculateBuckets();
await App.HintContextChange(); App.HintContextChange();
using var ctx = new AppDbContext(); using var ctx = new AppDbContext();
using var ods = new OdsFile(d.FileName); using var ods = new OdsFile(d.FileName);

View File

@ -374,7 +374,7 @@ namespace Elwig.Windows {
ctx.Remove(l); ctx.Remove(l);
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;

View File

@ -191,7 +191,7 @@ namespace Elwig.Windows {
} }
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
ControlUtils.SelectItemWithPk(WbGlKgs, k.KgNr); ControlUtils.SelectItemWithPk(WbGlKgs, k.KgNr);
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
@ -211,7 +211,7 @@ namespace Elwig.Windows {
ctx.Remove(k.WbKg); ctx.Remove(k.WbKg);
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
ControlUtils.SelectItemWithPk(WbKgs, k.KgNr); ControlUtils.SelectItemWithPk(WbKgs, k.KgNr);
} catch (Exception exc) { } catch (Exception exc) {
await HintContextChange(); await HintContextChange();

View File

@ -173,7 +173,7 @@ namespace Elwig.Windows {
var b = new Billing(Year); var b = new Billing(Year);
await b.AutoAdjustBusinessShares(new DateOnly(Year, 11, 30), kg ?? default, bs ?? default, kgPerBs ?? default, percent / 100.0 ?? default, minBs ?? default); await b.AutoAdjustBusinessShares(new DateOnly(Year, 11, 30), kg ?? default, bs ?? default, kgPerBs ?? default, percent / 100.0 ?? default, minBs ?? default);
await App.HintContextChange(); App.HintContextChange();
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
@ -187,7 +187,7 @@ namespace Elwig.Windows {
try { try {
var b = new Billing(Year); var b = new Billing(Year);
await b.UnAdjustBusinessShares(); await b.UnAdjustBusinessShares();
await App.HintContextChange(); App.HintContextChange();
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
@ -309,7 +309,7 @@ namespace Elwig.Windows {
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
MessageBox.Show(str, "Benutzerdefinierten Zu-/Abschlag speichern", MessageBoxButton.OK, MessageBoxImage.Error); MessageBox.Show(str, "Benutzerdefinierten Zu-/Abschlag speichern", MessageBoxButton.OK, MessageBoxImage.Error);
} }
await App.HintContextChange(); App.HintContextChange();
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
} }
} }

View File

@ -240,7 +240,7 @@ namespace Elwig.Windows {
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
ControlUtils.SelectItem(PaymentVariantList, v); ControlUtils.SelectItem(PaymentVariantList, v);
} catch (Exception exc) { } catch (Exception exc) {
@ -268,7 +268,7 @@ namespace Elwig.Windows {
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
ControlUtils.SelectItem(PaymentVariantList, n); ControlUtils.SelectItem(PaymentVariantList, n);
} catch (Exception exc) { } catch (Exception exc) {
@ -285,7 +285,7 @@ namespace Elwig.Windows {
ctx.Remove(v); ctx.Remove(v);
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
} catch (Exception exc) { } catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
@ -304,7 +304,7 @@ namespace Elwig.Windows {
} catch (Exception exc) { } catch (Exception exc) {
MessageBox.Show(exc.Message, "Berechnungsfehler", MessageBoxButton.OK, MessageBoxImage.Error); MessageBox.Show(exc.Message, "Berechnungsfehler", MessageBoxButton.OK, MessageBoxImage.Error);
} }
await App.HintContextChange(); App.HintContextChange();
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
CalculateButton.IsEnabled = true; CalculateButton.IsEnabled = true;
} }
@ -399,7 +399,7 @@ namespace Elwig.Windows {
} }
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
RevertButton.IsEnabled = true; RevertButton.IsEnabled = true;
await App.HintContextChange(); App.HintContextChange();
} }
private async void RevertButton_Click(object sender, RoutedEventArgs evt) { private async void RevertButton_Click(object sender, RoutedEventArgs evt) {
@ -415,7 +415,7 @@ namespace Elwig.Windows {
Mouse.OverrideCursor = Cursors.AppStarting; Mouse.OverrideCursor = Cursors.AppStarting;
var b = new BillingVariant(v.Year, v.AvNr); var b = new BillingVariant(v.Year, v.AvNr);
await b.Revert(); await b.Revert();
await App.HintContextChange(); App.HintContextChange();
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
CommitButton.IsEnabled = true; CommitButton.IsEnabled = true;
} }
@ -507,7 +507,7 @@ namespace Elwig.Windows {
await ctx.SaveChangesAsync(); await ctx.SaveChangesAsync();
} }
await App.HintContextChange(); App.HintContextChange();
CommentInput_TextChanged(null, null); CommentInput_TextChanged(null, null);
ConsiderModifiersInput_Changed(null, null); ConsiderModifiersInput_Changed(null, null);
ConsiderPenaltiesInput_Changed(null, null); ConsiderPenaltiesInput_Changed(null, null);