private void createFilterExpressionsAndFilteredCollection(out bool filterChanged) { QueryCreator queryCreator = new QueryCreator(filtersForColumns); queryCreator.CreateFilter(ref query); filterChanged = (query.IsQueryChanged || (query.FilterString != String.Empty && isRefresh)); if (query.FilterString != String.Empty && filterChanged) { IEnumerable collection = ItemsSource as IEnumerable; if (ItemsSource is ListCollectionView) { collection = (ItemsSource as ListCollectionView).SourceCollection as IEnumerable; } #region Debug #if DEBUG System.Diagnostics.Debug.WriteLine("QUERY STATEMENT: " + query.FilterString); string debugParameters = String.Empty; query.QueryParameters.ForEach(p => { if (debugParameters.Length > 0) { debugParameters += ","; } debugParameters += p.ToString(); }); System.Diagnostics.Debug.WriteLine("QUERY PARAMETRS: " + debugParameters); #endif #endregion var result = collection.AsQueryable().Where(query.FilterString, query.QueryParameters.ToArray <object>()); filteredCollection = result.Cast <object>().ToList(); } else { filteredCollection = null; } query.StoreLastUsedValues(); }
private void createFilterExpressionsAndFilteredCollection(out bool filterChanged, bool force) { QueryCreator queryCreator = new QueryCreator(filtersForColumns); queryCreator.CreateFilter(ref query); filterChanged = (query.IsQueryChanged || (query.FilterString != String.Empty && isRefresh)); if ((force && query.FilterString != String.Empty) || (query.FilterString != String.Empty && filterChanged)) { IEnumerable collection = ItemsSource as IEnumerable; if (ItemsSource is ListCollectionView) { collection = (ItemsSource as ListCollectionView).SourceCollection as IEnumerable; } var observable = ItemsSource as System.Collections.Specialized.INotifyCollectionChanged; if (observable != null) { observable.CollectionChanged -= new System.Collections.Specialized.NotifyCollectionChangedEventHandler(observable_CollectionChanged); observable.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(observable_CollectionChanged); } #region Debug #if DEBUG System.Diagnostics.Debug.WriteLine("QUERY STATEMENT: " + query.FilterString); string debugParameters = String.Empty; query.QueryParameters.ForEach(p => { if (debugParameters.Length > 0) debugParameters += ","; if (p!=null) debugParameters += p.ToString(); }); System.Diagnostics.Debug.WriteLine("QUERY PARAMETRS: " + debugParameters); #endif #endregion if (query.FilterString != String.Empty) { var result = collection.AsQueryable().Where(query.FilterString, query.QueryParameters.ToArray<object>()); filteredCollection = result.Cast<object>().ToList(); } } else { filteredCollection = null; } query.StoreLastUsedValues(); }
private void createFilterExpressionsAndFilteredCollection(out bool filterChanged, bool force) { QueryCreator queryCreator = new QueryCreator(filtersForColumns); queryCreator.CreateFilter(ref query); filterChanged = (query.IsQueryChanged || (query.FilterString != String.Empty && isRefresh)); if ((force && query.FilterString != String.Empty) || (query.FilterString != String.Empty && filterChanged)) { IEnumerable collection = ItemsSource as IEnumerable; if (ItemsSource is ListCollectionView) { collection = (ItemsSource as ListCollectionView).SourceCollection as IEnumerable; } var observable = ItemsSource as System.Collections.Specialized.INotifyCollectionChanged; if (observable != null) { observable.CollectionChanged -= new System.Collections.Specialized.NotifyCollectionChangedEventHandler(observable_CollectionChanged); observable.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(observable_CollectionChanged); } #region Debug #if DEBUG System.Diagnostics.Debug.WriteLine("QUERY STATEMENT: " + query.FilterString); string debugParameters = String.Empty; query.QueryParameters.ForEach(p => { if (debugParameters.Length > 0) { debugParameters += ","; } debugParameters += p.ToString(); }); System.Diagnostics.Debug.WriteLine("QUERY PARAMETRS: " + debugParameters); #endif #endregion if (query.FilterString != String.Empty) { query.FilterString = query.FilterString.Replace("str_jobapplications_ApplicationStatus != null AND ", ""); for (int i = 0; i < query.QueryParameters.Count; i++) { if (query.QueryParameters[i].ToString() == "null") { query.QueryParameters[i] = ""; } } var result = collection.AsQueryable().Where(query.FilterString, query.QueryParameters.ToArray <object>()); filteredCollection = result.Cast <object>().ToList(); } } else { filteredCollection = null; } query.StoreLastUsedValues(); }