Improve MemberAdminWindow search speed
This commit is contained in:
@ -70,12 +70,15 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private void RefreshMemberList() {
|
private void RefreshMemberList() {
|
||||||
Context.Members.Load();
|
Context.Members.Load();
|
||||||
|
RefreshMemberListQuery();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshMemberListQuery() {
|
||||||
IQueryable<Member> memberQuery = Context.Members;
|
IQueryable<Member> memberQuery = Context.Members;
|
||||||
if (ActiveMemberInput.IsChecked == true)
|
if (ActiveMemberInput.IsChecked == true)
|
||||||
memberQuery = memberQuery.Where(m => m.IsActive);
|
memberQuery = memberQuery.Where(m => m.IsActive);
|
||||||
|
|
||||||
List<Member> members = memberQuery.ToList();
|
List<Member> members = memberQuery.ToList();
|
||||||
members = members.OrderBy(m => m.FamilyName + " " + m.GivenName).ToList();
|
|
||||||
|
|
||||||
if (TextFilter.Count > 0) {
|
if (TextFilter.Count > 0) {
|
||||||
members = members
|
members = members
|
||||||
@ -89,6 +92,8 @@ namespace Elwig.Windows {
|
|||||||
if (members.Count == 1)
|
if (members.Count == 1)
|
||||||
MemberList.SelectedIndex = 0;
|
MemberList.SelectedIndex = 0;
|
||||||
|
|
||||||
|
members = members.OrderBy(m => m.FamilyName + " " + m.GivenName).ToList();
|
||||||
|
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +139,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void ActiveMemberInput_Changed(object sender, RoutedEventArgs evt) {
|
private void ActiveMemberInput_Changed(object sender, RoutedEventArgs evt) {
|
||||||
RefreshMemberList();
|
RefreshMemberListQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NewMemberButton_Click(object sender, RoutedEventArgs evt) {
|
private void NewMemberButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
@ -273,8 +278,8 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void SearchInput_TextChanged(object sender, RoutedEventArgs evt) {
|
private void SearchInput_TextChanged(object sender, RoutedEventArgs evt) {
|
||||||
TextFilter = SearchInput.Text.ToLower().Split(" ").ToList().FindAll(s => s != "");
|
TextFilter = SearchInput.Text.ToLower().Split(" ").ToList().FindAll(s => s.Length >= 3 || s.All(c => char.IsDigit(c)));
|
||||||
RefreshMemberList();
|
RefreshMemberListQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Menu_Member_SendEmail_Click(object sender, RoutedEventArgs evt) {
|
private void Menu_Member_SendEmail_Click(object sender, RoutedEventArgs evt) {
|
||||||
|
Reference in New Issue
Block a user