Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }