[#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) {
var s0 = await Context.Seasons.FindAsync(SeasonInput.Value);
var s1 = await Context.Seasons.FindAsync(SeasonInput.Value + 1);
using var ctx = new AppDbContext();
var s0 = await ctx.Seasons.FindAsync(SeasonInput.Value);
var s1 = await ctx.Seasons.FindAsync(SeasonInput.Value + 1);
var valid = (s0 != null);
var last = (s1 == null);
CalculateBucketsButton.IsEnabled = valid && last;
@ -42,22 +43,28 @@ namespace Elwig.Windows {
}
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;
CalculateBucketsButton.IsEnabled = false;
Mouse.OverrideCursor = Cursors.AppStarting;
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_AvoidUnderDeliveries = AvoidUnderDeliveriesInput.IsChecked ?? false;
s.Billing_HonorGebunden = HonorGebundenInput.IsChecked ?? false;
Context.Update(s);
await Context.SaveChangesAsync();
ctx.Update(s);
await ctx.SaveChangesAsync();
} catch { }
var b = new Billing(year);
await b.FinishSeason();
await b.CalculateBuckets();
await App.HintContextChange();
Mouse.OverrideCursor = null;
CalculateBucketsButton.IsEnabled = true;
}
@ -83,9 +90,10 @@ namespace Elwig.Windows {
Mouse.OverrideCursor = Cursors.AppStarting;
try {
var tbl1 = await OverUnderDeliveryData.ForSeason(Context.OverUnderDeliveryRows, year);
var tbl2 = await AreaComUnderDeliveryData.ForSeason(Context.AreaComUnderDeliveryRows, year);
var tbl3 = await MemberDeliveryPerVariantData.ForSeason(Context.MemberDeliveryPerVariantRows, year);
using var ctx = new AppDbContext();
var tbl1 = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, year);
var tbl2 = await AreaComUnderDeliveryData.ForSeason(ctx.AreaComUnderDeliveryRows, year);
var tbl3 = await MemberDeliveryPerVariantData.ForSeason(ctx.MemberDeliveryPerVariantRows, year);
using var ods = new OdsFile(d.FileName);
await ods.AddTable(tbl1);
await ods.AddTable(tbl2);