public bool SendFeeds(List <FeedContract> feeds) { List <FeedItemSP> items = feeds.SelectMany(feed => feed.FeedItems.Select(item => new FeedItemSP { Cats = !string.IsNullOrEmpty(feed.Cats) ? feed.Cats.Split(' ').Select(x => int.Parse(x)) : null, CreateDate = DateTime.Now, Description = item.Description, Link = item.Link, PubDate = item.PubDate, SiteId = feed.SiteId, SiteTitle = feed.SiteTitle, SiteUrl = feed.SiteUrl, Title = item.Title })).ToList(); IRepositorySearcher luceneSearcher = new LuceneSearcherRepository(); IRepositorySaver saver = new LuceneSaverRepository(); saver.AddItems(items); //var dics = feeds.ToDictionary(x => x.FeedId, c => c.LastFeedItemUrl); UpdateFeeds(feeds); NumberOfNewItemsToday += items.Count; //if (NumberOfNewItemsToday - Last_NumberOfNewItemsToday > 50) //{ // Optimize(); // Last_NumberOfNewItemsToday = NumberOfNewItemsToday; //} //Optimize(); return(true); }
public FeedItem Get(Guid feedItemId) { var item = base.GetList().SingleOrDefault(i => i.Id == feedItemId); if (item == null) { IRepositorySearcher _LuceneRepository = new LuceneSearcherRepository(); item = _LuceneRepository.GetItem(feedItemId.ToString(), null, true); } return(item); }
private List <FeedItem> ItemsByKey(string Content, int PageSize, int PageIndex, bool HasPhoto, int CacheTime = MinCacheTime) { var cacheName = "Items" + Content + PageSize + PageIndex + HasPhoto; var inCache = System.Web.HttpRuntime.Cache.Get(cacheName); if (inCache != null) { return(inCache as List <FeedItem>); } IRepositorySearcher _LuceneRepository = new LuceneSearcherRepository(); var items = _LuceneRepository.Search(Content, PageSize, PageIndex, Mn.NewsCms.Common.LuceneBase.LuceneSearcherType.Key, Mn.NewsCms.Common.LuceneBase.LuceneSortField.PubDate, HasPhoto); res = GetList().Where(item => items.Contains(item.Id)).ToList(); System.Web.HttpRuntime.Cache.AddToCache(cacheName, res, CacheTime); return(res); }