private async Task Filter() { TokenSource.Cancel(); var query = from feed in await RSSDataService.GetFeedsDataAsync(0) select feed; if (FilterSelectedSource != null) { query = query.Where(x => x.PostSource.Id == FilterSelectedSource.Id); } if (!string.IsNullOrWhiteSpace(FilterTitle)) { query = query.Where(x => x.PostTitle.ToLower().Contains(FilterTitle.ToLower())); } if (!string.IsNullOrWhiteSpace(FilterCreator)) { query = query.Where(x => x.Authors.Any(x => x.Email.ToLower() == FilterCreator.ToLower())); } if (FilterIsUnreadOnly) { query = query.Where(x => x.IsRead == false); } Feeds.Clear(); foreach (var item in query) { Feeds.Add(item); } }
public GenericWherePredicateCreator() { _filterCreator = new FilterCreator <TEntity, TPropertyMapper>(); }