public List <FeedItem> InsertItemsSqlLucene(RssItemCollection items, Feed feed) { var entiti = new TazehaContext(); List <FeedItem> listReturnBack = new List <FeedItem>(); IRepositorySaver RepositorySql = new SqlRepository(); IRepositorySaver RepositoryLucene = new LuceneRepositoryAsService(); int erroroccur = 0; foreach (RssItem item in items) { if (erroroccur > 2) { return(listReturnBack); } if (!Utility.HasFaWord(item.Title)) { continue; } FeedItem dbitem = new FeedItem(); dbitem.Title = HtmlRemoval.StripTagsRegex(item.Title).Replace("\t", "").Replace("\n", "").Replace("\r", ""); dbitem.Link = item.Link.ToString(); dbitem.Description = HtmlRemoval.StripTagsRegex(item.Description).Replace("\t", "").Replace("\n", "").Replace("\r", ""); //-------------------------Baray DB koochiK!!----------------- dbitem.Description = dbitem.Description.SubstringX(0, _appConfigBiz.MaxDescriptionLength()); dbitem.SiteId = feed.SiteId; dbitem.FeedId = feed.Id; if (item.PubDate.Year > 1350 && item.PubDate < DateTime.Now.AddDays(2)) { dbitem.PubDate = item.PubDate; } else { break; } dbitem.CreateDate = DateTime.Now; //dbitem.Cats = feed.Categories.Select(x => x.Id).ToList(); dbitem.SiteTitle = feed.Site.SiteTitle; dbitem.SiteUrl = feed.Site.SiteUrl; dbitem.SiteId = feed.SiteId; dbitem.IndexedType = dbitem.IndexedType.HasValue ? dbitem.IndexedType + 1 : 1; var feedItem = new FeedItem { Link = dbitem.Link, Title = dbitem.Title, PubDate = dbitem.PubDate, CreateDate = DateTime.Now, FeedId = feed.Id }; if (RepositorySql.AddItem(feedItem)) { RepositoryLucene.AddItem(dbitem); listReturnBack.Add(dbitem); Indexer.Indexer.FirstIndexing(dbitem); } } return(listReturnBack); }
public List <FeedItem> InsertFeedItems(IEnumerable <SyndicationItem> Items, Feed feed) { var listReturnBack = new List <FeedItem>(); var entiti = new TazehaContext(); var erroroccur = 0; foreach (SyndicationItem item in Items) { if (erroroccur > 2) { return(listReturnBack); } try { if (!Utility.HasFaWord(item.Title.Text)) { continue; } FeedItem dbitem = new FeedItem(); dbitem.Title = HtmlRemoval.StripTagsRegex(item.Title.Text).Replace("\t", "").Replace("\n", "").Replace("\r", ""); dbitem.Link = item.Links[0].Uri.AbsoluteUri; dbitem.Description = item.Summary == null ? string.Empty : HtmlRemoval.StripTagsRegex(item.Summary.Text).Replace("\t", "").Replace("\n", "").Replace("\r", ""); //-------------------------Baray DB koochi!!----------------- dbitem.Description = dbitem.Description.SubstringX(0, 1000); dbitem.CreateDate = DateTime.Now; dbitem.SiteId = feed.SiteId; dbitem.FeedId = feed.Id; if (item.PublishDate != null) { dbitem.PubDate = item.PublishDate.DateTime; } dbitem.IndexedType = dbitem.IndexedType.HasValue ? dbitem.IndexedType + 1 : 1; //dbitem.Cats = feed.Categories.Select(x => x.Id); dbitem.SiteTitle = feed.Site.SiteTitle; dbitem.SiteUrl = feed.Site.SiteUrl; dbitem.SiteId = feed.SiteId; var feedItem = new FeedItem { Link = dbitem.Link, Title = dbitem.Title, PubDate = dbitem.PubDate, CreateDate = DateTime.Now, FeedId = feed.Id }; entiti.FeedItems.Add(feedItem); entiti.SaveChanges(); dbitem.Id = Guid.Parse(feedItem.Id.ToString()); LuceneRepositoryAsService lucene = new LuceneRepositoryAsService(); lucene.AddItem(dbitem); //Helper.Utility.InsertItemToCloudant(dbitem); listReturnBack.Add(dbitem); Indexer.Indexer.FirstIndexing(dbitem); } catch (Exception ex) { if (ex.Message.IndexOfX("Inner Exception") > 0) { if (ex.InnerException.Message.IndexOfX("Cannot insert duplicate key") > -1) { //if (item.Links[0].Uri.AbsoluteUri.ContainsX(Crawler.BaseSite.SiteUrl)) break; } else { GeneralLogs.WriteLog("Errror @InsertFeedItems" + ex.InnerException.Message); } } else { GeneralLogs.WriteLog("Errror @InsertFeedItems" + ex.Message); } erroroccur++; } } //baraye in biroon forech gharar dadam ke har seri baraye set shodane IndexType save anjam nashe //try //{ // entiti.SaveChanges(); //} //catch (Exception ex) //{ // if (ex.Message.IndexOfX("Inner Exception") > 0) // EventLog.LogsBuffer.WriteLog(">Errror @InsertFeedItems2" + ex.InnerException.Message); // else // EventLog.LogsBuffer.WriteLog(">Errror @InsertFeedItems2" + ex.Message); //} return(listReturnBack); }