public void Find(FindClientObject obj) { if (obj != null) { Clients.Clear(); var list = Client.AllClients .Where(c => string.IsNullOrEmpty(FindClientObject.FirstName) || c.FirstName.Contains(FindClientObject.FirstName, StringComparison.InvariantCultureIgnoreCase)) .Where(c => string.IsNullOrEmpty(FindClientObject.LastName) || c.LastName.Contains(FindClientObject.LastName, StringComparison.InvariantCultureIgnoreCase)) .Where(c => string.IsNullOrEmpty(FindClientObject.PhoneNumber) || c.PhoneNumber.ToString().Contains(FindClientObject.PhoneNumber, StringComparison.InvariantCultureIgnoreCase)) .Where(c => FindClientObject.City == null || FindClientObject.City.Id == AllCity.Id || c.City.Id == FindClientObject.City.Id).ToList(); foreach (var c in list) { Clients.Add(c); } SelectedItem = null; } }
public ClientViewModel() { FindClientObject = new FindClientObject(); AllCity = new City("Все города"); CitiesForFind = new ObservableCollection <City>(); CitiesForFind.Insert(0, AllCity); foreach (var c in City.AllCities) { CitiesForFind.Add(c); } Clients = new ObservableCollection <Client>(); foreach (var c in Client.AllClients) { Clients.Add(c); } City.AllCities.CollectionChanged += AllCitiesOnCollectionChanged; AddCommand = new RelayCommand(OnAdd(), CanAdd()); ClearCommand = new RelayCommand(OnClear(), CanClear()); FindCommand = new RelayCommand(OnFind()); RemoveCommand = new RelayCommand(OnRemove(), CanRemove()); }