private void MaxPostNumberFilter() { if (Vm.MaxPostNumber >= 0) { PostsToFilter = PostsToFilter.Where(post => post.Number <= Vm.MaxPostNumber); } }
private void DateRangeFilter() { if (Vm.UseDateRange && Vm.StartDate.Date <= Vm.EndDate.Date) { PostsToFilter = PostsToFilter.Where(post => Vm.StartDate.Date <= post.Date.Date && post.Date.Date <= Vm.EndDate.Date); } }
private void Sort() { switch (Vm.SortingSetting) { case RedditPostSortingSettings.Newest_Added: PostsToFilter = PostsToFilter.OrderByDescending(post => post.Number); break; case RedditPostSortingSettings.Oldest_Added: PostsToFilter = PostsToFilter.OrderBy(post => post.Number); break; case RedditPostSortingSettings.Newest_By_Date: PostsToFilter = PostsToFilter.OrderByDescending(post => post.Date); break; case RedditPostSortingSettings.Oldest_By_Date: PostsToFilter = PostsToFilter.OrderBy(post => post.Date); break; case RedditPostSortingSettings.Subreddit: PostsToFilter = PostsToFilter.OrderBy(post => post.Subreddit.ToLower()); break; case RedditPostSortingSettings.Random: Randomize(); break; } }
private void FavoriteFilter() { if (Vm.FavoritedOnly) { PostsToFilter = PostsToFilter.Where(s => s.IsFavorited); } }
private void SavedFilter() { if (Vm.SavedOnly) { PostsToFilter = PostsToFilter.Where(s => s.IsSaved); } }
private void Randomize() { List <RedditPost> posts = PostsToFilter.ToList(); Random r = new Random(Vm.RandomizeSeed); int curr = posts.Count; while (curr > 1) { curr--; int toSwap = r.Next(curr + 1); RedditPost value = posts[toSwap]; posts[toSwap] = posts[curr]; posts[curr] = value; } PostsToFilter = posts.AsEnumerable(); }
private void NsfwFilter() { if (DenyNsfw) { PostsToFilter = PostsToFilter.Where(s => !s.IsNsfw); } switch (Vm.NsfwSetting) { case NsfwSettings.No_Filter: break; case NsfwSettings.Nsfw_Only: PostsToFilter = PostsToFilter.Where(s => s.IsNsfw); break; case NsfwSettings.No_Nsfw: PostsToFilter = PostsToFilter.Where(s => !s.IsNsfw); break; } }
private void SubredditTypeFilter() { if (!(Subreddits is null)) { List <string> sfwSubs = Subreddits.Where(sub => !sub.IsNsfw).Select(sub => sub.SubredditName).ToList(); switch (Vm.SubredditTypes) { case SubredditTypes.All: break; case SubredditTypes.Sfw: PostsToFilter = PostsToFilter.Where(posts => sfwSubs.Contains(posts.Subreddit)); break; case SubredditTypes.Nsfw: PostsToFilter = PostsToFilter.Where(posts => !sfwSubs.Contains(posts.Subreddit)); break; } } }
private void ContentTypeFilter() { List <RedditPost> posts = PostsToFilter.ToList(); List <ContentType> types = Enum.GetValues(typeof(ContentType)).Cast <ContentType>().ToList(); for (int i = posts.Count - 1; i >= 0; i--) { RedditPost post = posts[i]; ContentType type = post.GetContentType(); for (int j = 0; j < types.Count; j++) { bool isWhitelisted = Vm.ContentTypes[j]; if (!isWhitelisted && types[j] == type) { posts.RemoveAt(i); } } } PostsToFilter = posts.AsEnumerable(); }