public void ReloadThreads() { if (_downloadTask != null && !_downloadTask.IsCompleted) { return; } Threads.Clear(); ImageThreads.Clear(); IsError = false; IsLoading = true; Task <List <Models.Thread> > download = _board.GetThreadsAsync(); _downloadTask = download.ContinueWith(task => { if (task.IsFaulted) { IsError = true; IsLoading = false; return; } IEnumerable <ThreadViewModel> threads = task.Result .Where(x => !x.IsSticky || CriticalSettingsManager.Current.ShowStickies) .Select(x => new ThreadViewModel(x)); Threads.AddRange(threads); ImageThreads.AddRange(threads); IsLoading = false; }, TaskContinuationOptions.ExecuteSynchronously); }
private void SearchTextChanged() { Predicate <ThreadViewModel> filter = (ThreadViewModel tvm) => { if (tvm.InitialPost == null) { return(false); } return(tvm.InitialPost.SimpleComment.IndexOf(SearchText, StringComparison.OrdinalIgnoreCase) >= 0 || (tvm.InitialPost.Subject != null && tvm.InitialPost.Subject.IndexOf(SearchText, StringComparison.OrdinalIgnoreCase) >= 0)); }; Threads.ApplyFilter(filter); ImageThreads.ApplyFilter(filter); Watchlist.ApplyFilter(filter); }