Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }