From 1d187c25f3498fa3fc68152f8bb923e063283369 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Sun, 22 Sep 2024 21:01:48 +0200 Subject: [PATCH] MemberAdminWindow: Revert caching of MembersDeliveries --- Elwig/Services/MemberService.cs | 8 +++++++- Elwig/ViewModels/MemberAdminViewModel.cs | 1 - Elwig/Windows/MemberAdminWindow.xaml.cs | 4 ---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Elwig/Services/MemberService.cs b/Elwig/Services/MemberService.cs index 94bb31e..0bf1495 100644 --- a/Elwig/Services/MemberService.cs +++ b/Elwig/Services/MemberService.cs @@ -166,6 +166,11 @@ namespace Elwig.Services { } catch { } var (text, gridData) = await AreaComService.GenerateToolTipData(c, maxKgPerHa); + var deliveries = await ctx.Deliveries + .Where(d => d.MgNr == m.MgNr) + .GroupBy(d => d.Year) + .ToDictionaryAsync(g => g.Key, g => g.Any()); + await App.MainDispatcher.BeginInvoke(() => { var (d1Grid, _) = DeliveryService.GenerateToolTip(d1GridData, []); var (d2Grid, _) = DeliveryService.GenerateToolTip(d2GridData, []); @@ -179,12 +184,13 @@ namespace Elwig.Services { vm.StatusAreaCommitmentInfo = $"{Utils.CurrentLastSeason}"; vm.StatusAreaCommitment = text; vm.StatusAreaCommitmentToolTip = grid; + vm.MemberHasDeliveries = Enumerable.Range(0, 9999).Select(i => deliveries.GetValueOrDefault(i, false)).ToList(); }); }); vm.MemberHasEmail = m.EmailAddresses.Count > 0; vm.MemberCanSendEmail = App.Config.Smtp != null && m.EmailAddresses.Count > 0; - vm.MemberHasDeliveries = Enumerable.Range(0, 9999).Select(i => vm.MembersDeliveries.GetValueOrDefault((m.MgNr, i), false)).ToList(); + vm.MemberHasDeliveries = Enumerable.Range(0, 9999).Select(i => false).ToList(); } public static async Task<(List, IQueryable, List)> GetFilters(this MemberAdminViewModel vm, AppDbContext ctx) { diff --git a/Elwig/ViewModels/MemberAdminViewModel.cs b/Elwig/ViewModels/MemberAdminViewModel.cs index 31651e8..3423c0c 100644 --- a/Elwig/ViewModels/MemberAdminViewModel.cs +++ b/Elwig/ViewModels/MemberAdminViewModel.cs @@ -40,7 +40,6 @@ namespace Elwig.ViewModels { private bool _enableSearchInputs = true; [ObservableProperty] private IEnumerable _memberHasDeliveries = [ .. Enumerable.Range(0, 9999).Select(i => false) ]; - public Dictionary<(int, int), bool> MembersDeliveries = []; [ObservableProperty] private bool _memberListOrderByMgNr; diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 71b226c..1d054ef 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -187,10 +187,6 @@ namespace Elwig.Windows { ControlUtils.RenewItemsSource(BranchInput, await ctx.Branches.OrderBy(b => b.Name).ToListAsync()); ControlUtils.RenewItemsSource(DefaultKgInput, await ctx.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToListAsync()); - ViewModel.MembersDeliveries = await ctx.Deliveries - .GroupBy(d => new { d.MgNr, d.Year }) - .ToDictionaryAsync(g => (g.Key.MgNr, g.Key.Year), g => g.Any()); - var seasons = await ctx.Seasons.OrderByDescending(s => s.Year).ToListAsync(); Menu_DeliveryConfirmation.Items.Clear(); foreach (var s in seasons) {