Add RenewContext
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user