Improve MemberAdminWindow search speed
This commit is contained in:
@ -70,12 +70,15 @@ namespace Elwig.Windows {
|
||||
|
||||
private void RefreshMemberList() {
|
||||
Context.Members.Load();
|
||||
RefreshMemberListQuery();
|
||||
}
|
||||
|
||||
private void RefreshMemberListQuery() {
|
||||
IQueryable<Member> memberQuery = Context.Members;
|
||||
if (ActiveMemberInput.IsChecked == true)
|
||||
memberQuery = memberQuery.Where(m => m.IsActive);
|
||||
|
||||
List<Member> 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) {
|
||||
|
Reference in New Issue
Block a user