[#10] ViewModels: Unify FilterMember property
This commit is contained in:
@ -268,11 +268,11 @@ namespace Elwig {
|
||||
}
|
||||
|
||||
public static DeliveryAdminWindow FocusMemberDeliveries(int mgnr) {
|
||||
return FocusWindow<DeliveryAdminWindow>(() => new(mgnr), w => w.ViewModel.FilterMgNr == mgnr);
|
||||
return FocusWindow<DeliveryAdminWindow>(() => new(mgnr), w => w.ViewModel.FilterMember?.MgNr == mgnr);
|
||||
}
|
||||
|
||||
public static AreaComAdminWindow FocusMemberAreaComs(int mgnr) {
|
||||
return FocusWindow<AreaComAdminWindow>(() => new(mgnr), w => w.ViewModel.Member.MgNr == mgnr);
|
||||
return FocusWindow<AreaComAdminWindow>(() => new(mgnr), w => w.ViewModel.FilterMember.MgNr == mgnr);
|
||||
}
|
||||
|
||||
public static BaseDataWindow FocusBaseData() {
|
||||
|
@ -12,7 +12,7 @@ namespace Elwig.Services {
|
||||
public static async Task InitInputs(this AreaComAdminViewModel vm) {
|
||||
using var ctx = new AppDbContext();
|
||||
vm.FbNr = await ctx.NextFbNr();
|
||||
vm.MgNr = vm.Member.MgNr;
|
||||
vm.MgNr = vm.FilterMember.MgNr;
|
||||
vm.YearFrom = Utils.CurrentYear;
|
||||
vm.WineCult = null;
|
||||
}
|
||||
@ -36,7 +36,7 @@ namespace Elwig.Services {
|
||||
|
||||
public static async Task<(List<string>, IQueryable<AreaCom>, List<string>)> GetFilters(this AreaComAdminViewModel vm, AppDbContext ctx) {
|
||||
List<string> filterNames = [];
|
||||
IQueryable<AreaCom> areaComQuery = ctx.AreaCommitments.Where(a => a.MgNr == vm.Member.MgNr).OrderBy(a => a.FbNr);
|
||||
IQueryable<AreaCom> areaComQuery = ctx.AreaCommitments.Where(a => a.MgNr == vm.FilterMember.MgNr).OrderBy(a => a.FbNr);
|
||||
if (vm.ShowOnlyActiveAreaComs) {
|
||||
areaComQuery = Utils.ActiveAreaCommitments(areaComQuery);
|
||||
filterNames.Add("laufend");
|
||||
|
@ -6,6 +6,11 @@ using System.Linq;
|
||||
namespace Elwig.ViewModels {
|
||||
public partial class AreaComAdminViewModel : ObservableObject {
|
||||
|
||||
[ObservableProperty]
|
||||
private string _title = "Flächenbindungen - Elwig";
|
||||
|
||||
public required Member FilterMember { get; set; }
|
||||
|
||||
[ObservableProperty]
|
||||
private string? _searchQuery = "";
|
||||
public List<string> TextFilter {
|
||||
@ -13,8 +18,6 @@ namespace Elwig.ViewModels {
|
||||
set => SearchQuery = string.Join(' ', value.Where(e => e.Length > 0));
|
||||
}
|
||||
|
||||
public required Member Member { get; set; }
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _showOnlyActiveAreaComs;
|
||||
|
||||
|
@ -14,13 +14,12 @@ namespace Elwig.ViewModels {
|
||||
[ObservableProperty]
|
||||
private string _title = "Lieferungen - Elwig";
|
||||
|
||||
public Member? FilterMember { get; set; }
|
||||
|
||||
[ObservableProperty]
|
||||
private string? _searchQuery = "";
|
||||
public List<string> TextFilter => [.. SearchQuery?.ToLower().Split(' ').ToList().FindAll(e => e.Length > 0)];
|
||||
|
||||
public Member? FilterMember { get; set; }
|
||||
public int? FilterMgNr => FilterMember?.MgNr;
|
||||
|
||||
[ObservableProperty]
|
||||
private string? _lastScaleError;
|
||||
[ObservableProperty]
|
||||
|
@ -6,7 +6,7 @@
|
||||
xmlns:local="clr-namespace:Elwig.Windows"
|
||||
xmlns:ctrl="clr-namespace:Elwig.Controls"
|
||||
xmlns:vm="clr-namespace:Elwig.ViewModels"
|
||||
Title="Flächenbindungen - Elwig" Height="500" MinHeight="440" Width="920" MinWidth="860"
|
||||
Title="{Binding Title}" Height="500" MinHeight="440" Width="920" MinWidth="860"
|
||||
Loaded="Window_Loaded">
|
||||
<Window.DataContext>
|
||||
<vm:AreaComAdminViewModel/>
|
||||
|
@ -21,8 +21,8 @@ namespace Elwig.Windows {
|
||||
InitializeComponent();
|
||||
CommandBindings.Add(new CommandBinding(CtrlF, FocusSearchInput));
|
||||
using var ctx = new AppDbContext();
|
||||
ViewModel.Member = ctx.Members.Find(mgnr) ?? throw new ArgumentException("MgNr argument has invalid value");
|
||||
Title = $"Flächenbindungen - {ViewModel.Member.AdministrativeName} - Elwig";
|
||||
ViewModel.FilterMember = ctx.Members.Find(mgnr) ?? throw new ArgumentException("MgNr argument has invalid value");
|
||||
ViewModel.Title = $"Flächenbindungen - {ViewModel.FilterMember.AdministrativeName} - Elwig";
|
||||
ExemptInputs = [
|
||||
MgNrInput, AreaCommitmentList, NewAreaCommitmentButton,
|
||||
EditAreaCommitmentButton, DeleteAreaCommitmentButton, AreaCommitmentSaveButton,
|
||||
@ -119,6 +119,14 @@ namespace Elwig.Windows {
|
||||
|
||||
protected override async Task OnRenewContext(AppDbContext ctx) {
|
||||
await base.OnRenewContext(ctx);
|
||||
|
||||
if (await ctx.Members.FindAsync(ViewModel.FilterMember.MgNr) is not Member m) {
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
ViewModel.FilterMember = m;
|
||||
ViewModel.Title = $"Lieferungen - {ViewModel.FilterMember.AdministrativeName} - Elwig";
|
||||
|
||||
ControlUtils.RenewItemsSource(KgInput, await ctx.WbKgs
|
||||
.Include(k => k.AtKg.WbKg!.Rds)
|
||||
.Select(k => k.AtKg)
|
||||
|
Reference in New Issue
Block a user