예제 #1
0
파일: Feed.cs 프로젝트: grimmi/myrss
        public static async Task <Feed> Init(string feedUri, string name, string type)
        {
            Feed initFeed = null;

            DbgHelper.CurrentNumberOfFeeds("Beginn von Init");
            using (var db = new FeedModelContainer())
            {
                var feedUris = db.Feeds.Select(f => f.Uri).ToList <string>();
                if (!feedUris.Contains(feedUri))
                {
                    DbgHelper.CurrentNumberOfFeeds("neue feedUri");
                    initFeed = new Feed()
                    {
                        Uri = feedUri, FeedType = type, Name = name, LastUpdated = DateTime.MinValue
                    };
                }
                else
                {
                    DbgHelper.CurrentNumberOfFeeds("Keine neue feedUri");
                    initFeed = db.Feeds.Where(f => f.Uri.Equals(feedUri)).FirstOrDefault();
                }
            }
            DbgHelper.CurrentNumberOfFeeds("Vor ReadItems");
            await initFeed.ReadItems();

            return(initFeed);
        }
예제 #2
0
파일: Feed.cs 프로젝트: grimmi/myrss
 public void SaveItemsToDatabase(IEnumerable <FeedItem> items)
 {
     using (var db = new FeedModelContainer())
     {
         DbgHelper.CurrentNumberOfFeeds("Beginn von SaveItemsToDatabase");
         var itemUIds = db.FeedItems.Where(i => i.Feed.Id == this.Id).Select(i => i.UId).ToList <string>();
         foreach (var item in items)
         {
             try
             {
                 if (!itemUIds.Contains(item.UId))
                 {
                     db.FeedItems.Add(item);
                 }
             }
             catch (DbEntityValidationException dbValEx)
             {
                 logger.ErrorException(">>>>>>>>>>>", dbValEx);
             }
         }
         DbgHelper.CurrentNumberOfFeeds("Vor db.SaveChanges");
         db.SaveChanges();
         DbgHelper.CurrentNumberOfFeeds("Nach db.SaveChanges");
     }
 }
예제 #3
0
파일: Feed.cs 프로젝트: grimmi/myrss
 /// <summary>
 /// Setzt das letzte Update des Feeds auf den aktuellen Zeitpunkt (sollte in Event geändert werden)
 /// </summary>
 public void UpdateFeed()
 {
     using (var db = new FeedModelContainer())
     {
         DbgHelper.CurrentNumberOfFeeds("Beginn von UpdateFeed");
         var feed = db.Feeds.Where(f => f.Id == this.Id).FirstOrDefault();
         if (feed != null)
         {
             DbgHelper.CurrentNumberOfFeeds("Feed gefunden");
             feed.LastUpdated = DateTime.Now;
             db.SaveChanges();
             DbgHelper.CurrentNumberOfFeeds("Nach db.SaveChanges");
         }
     }
 }
예제 #4
0
파일: Form1.cs 프로젝트: grimmi/myrss
        public rssForm()
        {
            InitializeComponent();
            List <Feed> feeds = new List <Feed>();

            using (var db = new dotrss.Database.FeedModelContainer())
            {
                feeds = db.Feeds.Include("FeedItem").ToList <Feed>();
                foreach (var feed in feeds.OrderBy(f => f.Name))
                {
                    TreeNode feedNode = new TreeNode();
                    feedNode.Text = feed.Name + "(" + feed.Items.Count + ")";
                    feedNode.Tag  = feed;
                    foreach (var feedItem in feed.Items)
                    {
                        TreeNode itemNode = new TreeNode();
                        itemNode.Text = feedItem.Title.Substring(0, Math.Max(feedItem.Title.Length, 15));
                        itemNode.Tag  = feedItem;
                        feedNode.Nodes.Add(itemNode);
                    }
                    treeViewFeedList.Nodes.Add(feedNode);
                }
            }
        }