public SearchClientsViewModel(List <ClientEntity> clientEntities, bool reservationMode = false)
        {
            _pcs   = new PropertyChangeSupport(this);
            _title = "Resotel - Recherche de client";

            if (reservationMode)
            {
                _title = "Resotel - Recherche de réservation";
            }

            _searchClientVMs                     = new ObservableCollection <SearchClientViewModel>();
            _searchClientVMsSource               = CollectionViewProvider.Provider(_searchClientVMs);
            _searchClientVMsView                 = _searchClientVMsSource.View;
            _searchClientVMsView.Filter          = _filterClientNameOrFirstName;
            _searchClientVMsView.CurrentChanged += _client_selected;

            HashSet <string> clientKeys = new HashSet <string>();

            foreach (ClientEntity clientEntity in clientEntities)
            {
                if (clientKeys.Add($"{clientEntity.FirstName}{clientEntity.LastName}"))
                {
                    SearchClientViewModel clientSearchVM = new SearchClientViewModel(clientEntity, clientEntities);
                    _searchClientVMs.Add(clientSearchVM);
                    clientSearchVM.ClientSelected += _subClient_selected;
                }
            }
        }
        public SearchClientsViewModel(List<ClientEntity> clientEntities, bool reservationMode = false)
        {
            _pcs = new PropertyChangeSupport(this);
            _title = "Resotel - Recherche de client";

            if(reservationMode)
            {
                _title = "Resotel - Recherche de réservation";
            }

            _searchClientVMs = new ObservableCollection<SearchClientViewModel>();
            _searchClientVMsSource = CollectionViewProvider.Provider(_searchClientVMs);
            _searchClientVMsView = _searchClientVMsSource.View;
            _searchClientVMsView.Filter = _filterClientNameOrFirstName;
            _searchClientVMsView.CurrentChanged += _client_selected;

            HashSet<string> clientKeys = new HashSet<string>();

            foreach(ClientEntity clientEntity in clientEntities)
            {
                if (clientKeys.Add($"{clientEntity.FirstName}{clientEntity.LastName}"))
                {
                    SearchClientViewModel clientSearchVM = new SearchClientViewModel(clientEntity, clientEntities);
                    _searchClientVMs.Add(clientSearchVM);
                    clientSearchVM.ClientSelected += _subClient_selected;
                }
            }
        }
        private bool _filterClientNameOrFirstName(object item)
        {
            SearchClientViewModel clientSearchVM = item as SearchClientViewModel;
            bool mustShow = false;

            if (string.IsNullOrEmpty(_searchedClient) ||
                clientSearchVM.ClientEntity.FirstName.Contains(_searchedClient) ||
                clientSearchVM.ClientEntity.LastName.Contains(_searchedClient)
                )
            {
                mustShow = true;
            }
            return(mustShow);
        }
 private void _displayMore(SearchClientViewModel searchClientsVM)
 {
     _displayMoreToggled = !_displayMoreToggled;
     _pcs.NotifyChange(nameof(ShowSubs));
     _pcs.NotifyChange(nameof(DisplayMoreImage));
 }
 private void _displayMore(SearchClientViewModel searchClientsVM)
 {
     _displayMoreToggled = !_displayMoreToggled;
     _pcs.NotifyChange(nameof(ShowSubs));
     _pcs.NotifyChange(nameof(DisplayMoreImage));
 }