From d4e217efad5fef1da63ae4f9c6252f99f2814ab0 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Sun, 16 Apr 2023 23:27:27 +0200 Subject: [PATCH] Only show active contract area --- Elwig/Helpers/Utils.cs | 3 +++ Elwig/Models/Member.cs | 6 ++++++ Elwig/Windows/MemberAdminWindow.xaml.cs | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Elwig/Helpers/Utils.cs b/Elwig/Helpers/Utils.cs index 5bece0c..e4a350d 100644 --- a/Elwig/Helpers/Utils.cs +++ b/Elwig/Helpers/Utils.cs @@ -10,6 +10,9 @@ using System.Windows.Controls.Primitives; namespace Elwig.Helpers { public static class Utils { + + public static int CurrentSeason => DateTime.Now.Year - (DateTime.Now.Month <= 3 ? 1 : 0); + public static void SetInputChanged(Control input) { var brush = Brushes.Orange; if (input is ComboBox cb) { diff --git a/Elwig/Models/Member.cs b/Elwig/Models/Member.cs index 06501c8..0e2b5b2 100644 --- a/Elwig/Models/Member.cs +++ b/Elwig/Models/Member.cs @@ -1,3 +1,4 @@ +using Elwig.Helpers; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; @@ -144,6 +145,11 @@ namespace Elwig.Models { [InverseProperty("Member")] public virtual ISet Contracts { get; private set; } + [NotMapped] + public virtual ISet ActiveContracts => Contracts + .Where(c => c.YearFrom <= Utils.CurrentSeason && (c.YearTo ?? int.MaxValue) >= Utils.CurrentSeason) + .ToHashSet(); + [InverseProperty("Member")] public virtual BillingAddr BillingAddress { get; private set; } diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 98543ba..1f43986 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -387,7 +387,7 @@ namespace Elwig.Windows { case "email": ContactEmailInput.IsChecked = true; break; } - AreaCommitment.Text = $"{m.Contracts.Select(c => c.Area).Sum():N0} m²"; + AreaCommitment.Text = $"{m.ActiveContracts.Select(c => c.Area).Sum():N0} m²"; Menu_Member_SendEmail.IsEnabled = m.Email != null;