コード例 #1
0
ファイル: NewsRepository.cs プロジェクト: ITSF/WP8Book
 public DateTime GetNewestLocalNewsDate()
 {
     using (var db = NewsDataContext.Create())
     {
         db.ObjectTrackingEnabled = false;
         return(db.News.OrderByDescending(item => item.PublishDate).Select(news => news.PublishDate).Take(1).FirstOrDefault().GetValueOrDefault(DateTime.MinValue));
     }
 }
コード例 #2
0
ファイル: NewsRepository.cs プロジェクト: ITSF/WP8Book
        private List <NewsItem> LoadLocalNewsData()
        {
            using (var db = NewsDataContext.Create())
            {
                db.ObjectTrackingEnabled = false;

                return(db.News.OrderByDescending(item => item.PublishDate).ToList());
            }
        }
コード例 #3
0
ファイル: NewsRepository.cs プロジェクト: ITSF/WP8Book
 public void DeleteNewsOlderThan(DateTime timeLimit)
 {
     using (var db = NewsDataContext.Create())
     {
         var newsToDelete = db.News.Where(n => n.PublishDate < timeLimit);
         db.News.DeleteAllOnSubmit(newsToDelete);
         db.SubmitChanges();
     }
 }
コード例 #4
0
		public static NewsDataContext Create()
		{
			NewsDataContext db = new NewsDataContext();
			if (!db.DatabaseExists())
			{
				db.CreateDatabase();
			}

			return db;
		}
コード例 #5
0
ファイル: NewsRepository.cs プロジェクト: ITSF/WP8Book
        public void MarkAsRead(NewsItem news)
        {
            using (var db = NewsDataContext.Create())
            {
                var loadedNews = db.News.Single(n => n.Id == news.Id);
                loadedNews.IsRead = true;
                db.SubmitChanges();
            }

            news.IsRead = true;
        }
コード例 #6
0
        public static NewsDataContext Create()
        {
            NewsDataContext db = new NewsDataContext();

            if (!db.DatabaseExists())
            {
                db.CreateDatabase();
            }

            return(db);
        }
コード例 #7
0
ファイル: NewsRepository.cs プロジェクト: ITSF/WP8Book
        private void SaveFilteredRssNews(List <XElement> rssNews)
        {
            if (rssNews.Count == 0)
            {
                return;
            }

            using (var db = NewsDataContext.Create())
            {
                foreach (XElement rssItem in rssNews)
                {
                    NewsItem news = new NewsItem();
                    news.IsRead = false;

                    XElement linkElement = rssItem.Element("link");
                    if (linkElement == null)
                    {
                        // Wenn Artikel-URL fehlt, ist die News nichts wert
                        continue;
                    }

                    news.Link = rssItem.Element("link").Value;

                    XElement descriptionElement = rssItem.Element("description");
                    string   preview            = descriptionElement != null ? descriptionElement.Value : "";
                    news.Preview = preview;

                    XElement publishDateElement = rssItem.Element("pubDate");
                    if (publishDateElement != null)
                    {
                        news.PublishDate = DateTime.Parse(publishDateElement.Value);
                    }

                    XElement thumbnailElement = rssItem.Element("enclosure");
                    if (thumbnailElement != null && thumbnailElement.Attribute("url") != null)
                    {
                        news.Thumbnail = thumbnailElement.Attribute("url").Value;
                    }

                    XElement titleElement = rssItem.Element("title");
                    if (titleElement != null)
                    {
                        news.Title = titleElement.Value;
                    }

                    db.News.InsertOnSubmit(news);
                }

                db.SubmitChanges();
            }
        }