public DataResultSyndicationItems GetByCategory(DataFilterSyndication filter) { SyndicationFeedFormatter feed = this.GetAll(); SyndicationCategoryComparer categoryComparer = new SyndicationCategoryComparer(); SyndicationCategory categoryToFind = new SyndicationCategory(filter.CategoryName); List<SyndicationItem> items = feed.Feed.Items .Where(p => p.Categories.Contains(categoryToFind, categoryComparer)) .ToList(); return this.GetDataResult(items, filter); }
/// <summary> /// Selects all categories inside SyndicationItems and push them into an array /// </summary> /// <param name="feedFormatter"></param> /// <returns></returns> public static SyndicationCategory[] CategoriesGetFromItems(this SyndicationFeedFormatter feedFormatter) { SyndicationCategoryComparer categoryComparer = new SyndicationCategoryComparer(); SyndicationCategory[] categories = feedFormatter.Feed.Items .Select(p => { return p.Categories; }) .SelectMany(p => p) .Distinct(categoryComparer) .ToArray(); return categories; }