[#43] SeasonFinishWindow: Do not use Context from ContextWindow any more

This commit is contained in:
2024-03-15 14:26:21 +01:00
parent a8e3eb6c1c
commit e2e46bc52a

View File

@ -24,8 +24,9 @@ namespace Elwig.Windows {
} }
private async void SeasonInput_ValueChanged(object? sender, RoutedEventArgs? evt) { private async void SeasonInput_ValueChanged(object? sender, RoutedEventArgs? evt) {
var s0 = await Context.Seasons.FindAsync(SeasonInput.Value); using var ctx = new AppDbContext();
var s1 = await Context.Seasons.FindAsync(SeasonInput.Value + 1); var s0 = await ctx.Seasons.FindAsync(SeasonInput.Value);
var s1 = await ctx.Seasons.FindAsync(SeasonInput.Value + 1);
var valid = (s0 != null); var valid = (s0 != null);
var last = (s1 == null); var last = (s1 == null);
CalculateBucketsButton.IsEnabled = valid && last; CalculateBucketsButton.IsEnabled = valid && last;
@ -42,22 +43,28 @@ namespace Elwig.Windows {
} }
private async void CalculateBucketsButton_Click(object sender, RoutedEventArgs evt) { private async void CalculateBucketsButton_Click(object sender, RoutedEventArgs evt) {
if (SeasonInput.Value is not int year || await Context.Seasons.FindAsync(year) is not Season s) if (SeasonInput.Value is not int year)
return; return;
CalculateBucketsButton.IsEnabled = false; CalculateBucketsButton.IsEnabled = false;
Mouse.OverrideCursor = Cursors.AppStarting; Mouse.OverrideCursor = Cursors.AppStarting;
try { try {
using var ctx = new AppDbContext();
if (await ctx.Seasons.FindAsync(year) is not Season s)
return;
s.Billing_AllowAttrsIntoLower = AllowAttrIntoLowerInput.IsChecked ?? false; s.Billing_AllowAttrsIntoLower = AllowAttrIntoLowerInput.IsChecked ?? false;
s.Billing_AvoidUnderDeliveries = AvoidUnderDeliveriesInput.IsChecked ?? false; s.Billing_AvoidUnderDeliveries = AvoidUnderDeliveriesInput.IsChecked ?? false;
s.Billing_HonorGebunden = HonorGebundenInput.IsChecked ?? false; s.Billing_HonorGebunden = HonorGebundenInput.IsChecked ?? false;
Context.Update(s); ctx.Update(s);
await Context.SaveChangesAsync(); await ctx.SaveChangesAsync();
} catch { } } catch { }
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();
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
CalculateBucketsButton.IsEnabled = true; CalculateBucketsButton.IsEnabled = true;
} }
@ -83,9 +90,10 @@ namespace Elwig.Windows {
Mouse.OverrideCursor = Cursors.AppStarting; Mouse.OverrideCursor = Cursors.AppStarting;
try { try {
var tbl1 = await OverUnderDeliveryData.ForSeason(Context.OverUnderDeliveryRows, year); using var ctx = new AppDbContext();
var tbl2 = await AreaComUnderDeliveryData.ForSeason(Context.AreaComUnderDeliveryRows, year); var tbl1 = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, year);
var tbl3 = await MemberDeliveryPerVariantData.ForSeason(Context.MemberDeliveryPerVariantRows, year); var tbl2 = await AreaComUnderDeliveryData.ForSeason(ctx.AreaComUnderDeliveryRows, year);
var tbl3 = await MemberDeliveryPerVariantData.ForSeason(ctx.MemberDeliveryPerVariantRows, year);
using var ods = new OdsFile(d.FileName); using var ods = new OdsFile(d.FileName);
await ods.AddTable(tbl1); await ods.AddTable(tbl1);
await ods.AddTable(tbl2); await ods.AddTable(tbl2);