using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using CodeHollow.FeedReader; using SharpRss.Models; using ToolQit.Extensions; namespace SharpRss.Services { /// /// Managing RSS feeds and categories. /// public class RssService : IDisposable { public RssService() { //SetupTestCategoriesAndFeedsAsync(); } private readonly DatabaseService _dbService = new DatabaseService(); /*private async void SetupTestCategoriesAndFeedsAsync() { await _dbService.AddCategoriesAsync(new HashSet() { new CategoryModel() { Name = "All" }, new CategoryModel() { Name = "RSS" }, new CategoryModel() { Name = "Tech" }, new CategoryModel() { Name = "News" } }); await _dbService.AddFeedsAsync(new HashSet() { new FeedModel("http://fedoramagazine.org/feed/"), new FeedModel("https://www.nasa.gov/rss/dyn/breaking_news.rss"), new FeedModel("https://journals.plos.org/plosone/feed/atom"), new FeedModel("https://itsfoss.com/feed") }); }*/ public async Task GetFeedAsync(string rssUrl) { /*return await FeedCache.GetFeed(rssUrl);*/ return new Feed(); } public async Task> GetAllUnsortedAsync() { HashSet items = new HashSet(); /*var categories = await _dbService.GetCategoriesAsync(); var feeds = await _dbService.GetFeedsAsync(string.Empty); items.UnionWith(categories); items.UnionWith(feeds);*/ return items; } public async Task> GetCategoriesAsync() { /*var result = await _dbService.GetCategoriesAsync(); return result.OrderBy(x => x.Name).ToHashSet();*/ return new HashSet(); } public async Task> GetFeedsAsync(GroupModel? categoryModel = null) { HashSet feeds = new HashSet(); /*if (categoryModel != null) feeds = await _dbService.GetFeedsAsync(categoryModel.Id); else feeds = await _dbService.GetFeedsAsync();*/ return feeds; } public async void AddCategoryAsync(string name, string? icon, string hexColor) { /*GroupModel groupModel = new GroupModel() { Name = name }; if (icon != null) groupModel.PathIcon = icon; if (!hexColor.IsNullEmptyWhiteSpace()) groupModel.HexColor = hexColor;*/ //await _dbService.AddCategoriesAsync(new HashSet() { groupModel }); } public async void AddFeedAsync(string rssUrl, GroupModel? category = null) { //FeedModel feedModel = new FeedModel(rssUrl, category); //await _dbService.AddFeedsAsync(new HashSet() { feedModel }); } public void Dispose() { _dbService.Dispose(); } } }