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