Add RenewContext

This commit is contained in:
2023-05-25 18:03:38 +02:00
parent 27abf559e8
commit 7468af3970
9 changed files with 177 additions and 43 deletions

View File

@ -12,8 +12,7 @@ using Microsoft.EntityFrameworkCore.ChangeTracking;
namespace Elwig.Windows {
public partial class MemberAdminWindow : AdministrationWindow {
private bool IsEditing = false;
private bool IsCreating = false;
private List<string> TextFilter = new();
private readonly RoutedCommand CtrlF = new();
@ -35,8 +34,6 @@ namespace Elwig.Windows {
private void Window_Loaded(object sender, RoutedEventArgs evt) {
ActiveMemberInput.IsChecked = true;
BranchInput.ItemsSource = Context.Branches.OrderBy(b => b.Name).ToList();
DefaultKgInput.ItemsSource = Context.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToList();
}
private async Task RefreshMemberList() {
@ -44,7 +41,7 @@ namespace Elwig.Windows {
await RefreshMemberListQuery();
}
private async Task RefreshMemberListQuery() {
private async Task RefreshMemberListQuery(bool updateSort = false) {
IQueryable<Member> memberQuery = Context.Members;
if (ActiveMemberInput.IsChecked == true)
memberQuery = memberQuery.Where(m => m.IsActive);
@ -67,7 +64,7 @@ namespace Elwig.Windows {
.ToList();
}
MemberList.ItemsSource = members;
Utils.RenewItemsSource(MemberList, members, i => (i as Member)?.MgNr, !updateSort);
if (members.Count == 1)
MemberList.SelectedIndex = 0;
@ -104,6 +101,13 @@ namespace Elwig.Windows {
ValidateRequiredInputs();
}
protected override async Task RenewContext() {
await base.RenewContext();
Utils.RenewItemsSource(BranchInput, await Context.Branches.OrderBy(b => b.Name).ToListAsync(), i => (i as Branch)?.ZwstId);
Utils.RenewItemsSource(DefaultKgInput, await Context.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToListAsync(), i => (i as AT_Kg)?.KgNr);
await RefreshMemberList();
}
private void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
RefreshInputs();
}
@ -195,7 +199,7 @@ namespace Elwig.Windows {
private async void SearchInput_TextChanged(object sender, RoutedEventArgs evt) {
TextFilter = SearchInput.Text.ToLower().Split(" ").ToList().FindAll(e => e.Length > 0);
await RefreshMemberListQuery();
await RefreshMemberListQuery(true);
}
private void Menu_Member_SendEmail_Click(object sender, RoutedEventArgs evt) {
@ -358,11 +362,9 @@ namespace Elwig.Windows {
AT_PlzDest? p = m.PostalDest.AtPlz;
if (p != null) {
PlzInput.Text = p.Plz.ToString();
OrtInput.ItemsSource = p.AtPlz.Orte;
OrtInput.SelectedItem = p;
} else {
PlzInput.Text = null;
OrtInput.ItemsSource = null;
OrtInput.SelectedItem = null;
}
@ -385,14 +387,12 @@ namespace Elwig.Windows {
AT_PlzDest? b = billingAddr.PostalDest.AtPlz;
if (b != null) {
BillingPlzInput.Text = b.Plz.ToString();
BillingOrtInput.ItemsSource = b.AtPlz.Orte;
BillingOrtInput.SelectedItem = b;
}
} else {
BillingNameInput.Text = "";
BillingAddressInput.Text = "";
BillingPlzInput.Text = "";
BillingOrtInput.ItemsSource = null;
BillingOrtInput.SelectedItem = null;
}