diff --git a/Elwig/Windows/BaseDataWindow.xaml.cs b/Elwig/Windows/BaseDataWindow.xaml.cs index 56c898d..3dcb0fc 100644 --- a/Elwig/Windows/BaseDataWindow.xaml.cs +++ b/Elwig/Windows/BaseDataWindow.xaml.cs @@ -10,6 +10,8 @@ using System.Windows.Controls; namespace Elwig.Windows { public partial class BaseDataWindow : AdministrationWindow { + protected AppDbContext? EditContext; + public BaseDataWindow() { InitializeComponent(); RequiredInputs = [ @@ -193,30 +195,28 @@ namespace Elwig.Windows { } private async Task InitEditing() { - using var ctx = new AppDbContext(); - await BranchesInitEditing(ctx); - await WineAttributesInitEditing(ctx); - await WineCultivationsInitEditing(ctx); - await AreaCommitmentTypesInitEditing(ctx); - await SeasonsInitEditing(ctx); - await ModifiersInitEditing(ctx); + EditContext = new AppDbContext(); + await BranchesInitEditing(EditContext); + await WineAttributesInitEditing(EditContext); + await WineCultivationsInitEditing(EditContext); + await AreaCommitmentTypesInitEditing(EditContext); + await SeasonsInitEditing(EditContext); + await ModifiersInitEditing(EditContext); } private async Task Save() { - using var ctx = new AppDbContext(); - // FIXME - //using var tx = await ctx.Database.BeginTransactionAsync(); await UpdateClientParameters(App.Client); - await BranchesSave(ctx); - await WineAttributesSave(ctx); - await WineCultivationsSave(ctx); - await AreaCommitmentTypesSave(ctx); - await SeasonsSave(ctx); - await ModifiersSave(ctx); - //await tx.CommitAsync(); + await BranchesSave(EditContext!); + await WineAttributesSave(EditContext!); + await WineCultivationsSave(EditContext!); + await AreaCommitmentTypesSave(EditContext!); + await SeasonsSave(EditContext!); + await ModifiersSave(EditContext!); } private async Task FinishEditing() { + EditContext?.Dispose(); + EditContext = null; using var ctx = new AppDbContext(); await BranchesFinishEditing(ctx); await WineAttributesFinishEditing(ctx);