private void UpdateFoundCustomers() { IEnumerable <Customer> result = new List <Customer>(); using (var worker = new BackgroundWorker()) { worker.DoWork += delegate { bool searchPn = string.IsNullOrEmpty(PhoneNumberSearchText); bool searchCn = string.IsNullOrEmpty(CustomerNameSearchText); bool searchAd = string.IsNullOrEmpty(AddressSearchText); result = Dao.Query <Customer>( x => (searchPn || x.PhoneNumber.Contains(PhoneNumberSearchText)) && (searchCn || x.Name.ToLower().Contains(CustomerNameSearchText.ToLower())) && (searchAd || x.Address.ToLower().Contains(AddressSearchText.ToLower()))); }; worker.RunWorkerCompleted += delegate { AppServices.MainDispatcher.BeginInvoke(DispatcherPriority.Normal, new Action( delegate { FoundCustomers.Clear(); FoundCustomers.AddRange(result.Select(x => new CustomerViewModel(x))); if (SelectedCustomer != null && PhoneNumberSearchText == SelectedCustomer.PhoneNumber) { SelectedView = 1; SelectedCustomer.UpdateDetailedInfo(); } RaisePropertyChanged("SelectedCustomer"); CommandManager.InvalidateRequerySuggested(); })); }; worker.RunWorkerAsync(); } }
public void RefreshSelectedCustomer() { ClearSearchValues(); if (AppServices.MainDataContext.SelectedTicket != null && AppServices.MainDataContext.SelectedTicket.CustomerId > 0) { var customer = Dao.SingleWithCache <Customer>(x => x.Id == AppServices.MainDataContext.SelectedTicket.CustomerId); if (customer != null) { FoundCustomers.Add(new CustomerViewModel(customer)); } if (SelectedCustomer != null) { SelectedView = 1; SelectedCustomer.UpdateDetailedInfo(); } } RaisePropertyChanged("SelectedCustomer"); RaisePropertyChanged("IsClearVisible"); RaisePropertyChanged("IsResetCustomerVisible"); RaisePropertyChanged("IsMakePaymentVisible"); ActiveView = 0; SelectedCustomerTransactions.Clear(); }