diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 3d6c518..cc14fe1 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -70,12 +70,15 @@ namespace Elwig.Windows { private void RefreshMemberList() { Context.Members.Load(); + RefreshMemberListQuery(); + } + + private void RefreshMemberListQuery() { IQueryable memberQuery = Context.Members; if (ActiveMemberInput.IsChecked == true) memberQuery = memberQuery.Where(m => m.IsActive); List members = memberQuery.ToList(); - members = members.OrderBy(m => m.FamilyName + " " + m.GivenName).ToList(); if (TextFilter.Count > 0) { members = members @@ -89,6 +92,8 @@ namespace Elwig.Windows { if (members.Count == 1) MemberList.SelectedIndex = 0; + members = members.OrderBy(m => m.FamilyName + " " + m.GivenName).ToList(); + RefreshInputs(); } @@ -134,7 +139,7 @@ namespace Elwig.Windows { } private void ActiveMemberInput_Changed(object sender, RoutedEventArgs evt) { - RefreshMemberList(); + RefreshMemberListQuery(); } private void NewMemberButton_Click(object sender, RoutedEventArgs evt) { @@ -273,8 +278,8 @@ namespace Elwig.Windows { } private void SearchInput_TextChanged(object sender, RoutedEventArgs evt) { - TextFilter = SearchInput.Text.ToLower().Split(" ").ToList().FindAll(s => s != ""); - RefreshMemberList(); + TextFilter = SearchInput.Text.ToLower().Split(" ").ToList().FindAll(s => s.Length >= 3 || s.All(c => char.IsDigit(c))); + RefreshMemberListQuery(); } private void Menu_Member_SendEmail_Click(object sender, RoutedEventArgs evt) {