diff --git a/salesbook.Shared/Components/Pages/Users.razor b/salesbook.Shared/Components/Pages/Users.razor index 3feaa3a..b5a3d8f 100644 --- a/salesbook.Shared/Components/Pages/Users.razor +++ b/salesbook.Shared/Components/Pages/Users.razor @@ -79,7 +79,7 @@ }); } - FilterUsers(true); + FilterUsers(); } private class UserDisplayItem @@ -93,25 +93,32 @@ private void FilterUsers(bool clearFilter) { - if (clearFilter) + if (clearFilter || string.IsNullOrWhiteSpace(TextToFilter)) { TextToFilter = null; FilteredGroupedUserList = GroupedUserList; - StateHasChanged(); return; } - if (TextToFilter == null) return; + var filter = TextToFilter.Trim(); + var result = new List(); - FilteredGroupedUserList = GroupedUserList.FindAll(x => - x.User.RagSoc.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase) || - x.User.Indirizzo.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase) || - (x.User.Telefono != null && x.User.Telefono.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase)) || - (x.User.EMail != null && x.User.EMail.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase)) || - x.User.PartIva.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase) - ); + foreach (var item in GroupedUserList) + { + var user = item.User; + if ( + (!string.IsNullOrEmpty(user.RagSoc) && user.RagSoc.Contains(filter, StringComparison.OrdinalIgnoreCase)) || + (!string.IsNullOrEmpty(user.Indirizzo) && user.Indirizzo.Contains(filter, StringComparison.OrdinalIgnoreCase)) || + (!string.IsNullOrEmpty(user.Telefono) && user.Telefono.Contains(filter, StringComparison.OrdinalIgnoreCase)) || + (!string.IsNullOrEmpty(user.EMail) && user.EMail.Contains(filter, StringComparison.OrdinalIgnoreCase)) || + (!string.IsNullOrEmpty(user.PartIva) && user.PartIva.Contains(filter, StringComparison.OrdinalIgnoreCase)) + ) + { + result.Add(item); + } + } - StateHasChanged(); + FilteredGroupedUserList = result; } } \ No newline at end of file