Exemplo n.º 1
0
        public RSSFeedItem UpdateFeed(RSSFeedItem item)
        {
            try
            {
                var dc = new RNManagementContext();
                var feeds = (from xx in dc.RssFeeds
                             where xx.RssId == item.FeedId
                             select xx).FirstOrDefault();
                feeds.UrlOfRss = item.RSSUrl;
                feeds.NameOfSite = item.NameOfOrganization;
                feeds.UrlOfSite = item.MainUrl;
                feeds.InitialImageUrl = item.InitialImageUrl;
                feeds.MainImageUrl = item.MainImageUrl;
                feeds.CanNotScanFeed = item.CanNotScanFeed;
                if (!String.IsNullOrEmpty(item.AuthorUserName))
                    feeds.UserIdToAssignPostsTo = (Guid)Membership.GetUser(item.AuthorUserName).ProviderUserKey;
                else
                    feeds.UserIdToAssignPostsTo = new Guid();

                var catsInDb = feeds.InitialCategories.ToList();
                var tagsInDb = feeds.InitialTags.ToList();

                foreach (var cat in catsInDb)
                {
                    var c = item.Categories.Where(x => x.CategoryRNId == cat.CategoryRNId).FirstOrDefault();
                    if (c == null)
                        feeds.InitialCategories.Remove(cat);
                }
                foreach (var cat in item.Categories)
                {
                    var c = feeds.InitialCategories.Where(x => x.CategoryRNId == cat.CategoryRNId).FirstOrDefault();
                    if (c == null)
                        feeds.InitialCategories.Add(new DataModels.RN.RSS.RSSFeedCategory() { CategoryRNId = cat.CategoryRNId });
                }
                foreach (var cat in tagsInDb)
                {
                    var c = item.Tags.Where(x => x.TagName == cat.TagName).FirstOrDefault();
                    if (c == null)
                        feeds.InitialTags.Remove(cat);
                }
                foreach (var cat in item.Tags)
                {
                    var c = feeds.InitialTags.Where(x => x.TagName == cat.TagName).FirstOrDefault();
                    if (c == null)
                        feeds.InitialTags.Add(new DataModels.RN.RSS.RSSFeedTag() { TagName = cat.TagName });
                }


                int count = dc.SaveChanges();
                return item;
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, GetType());
            }
            return new RSSFeedItem();

        }
Exemplo n.º 2
0
        public RSSFactory AddNewFeed(RSSFeedItem item)
        {
            try
            {
                var dc = new RNManagementContext();
                var ff = dc.RssFeeds.Where(x => x.UrlOfRss == item.RSSUrl).FirstOrDefault();
                if (ff == null)
                {
                    RSSFeed feed = new RSSFeed();
                    feed.UrlOfRss = item.RSSUrl;
                    feed.UrlOfSite = item.MainUrl;
                    feed.NameOfSite = item.NameOfOrganization;
                    feed.TotalPostsImported = 0;
                    feed.LastCheck = DateTime.UtcNow.AddYears(-100);
                    feed.Created = DateTime.UtcNow;
                    feed.InitialImageUrl = item.InitialImageUrl;
                    feed.MainImageUrl = item.MainImageUrl;
                    feed.CanNotScanFeed = item.CanNotScanFeed;
                    if (!String.IsNullOrEmpty(item.AuthorUserName))
                        feed.UserIdToAssignPostsTo = (Guid)Membership.GetUser(item.AuthorUserName).ProviderUserKey;
                    foreach (var c in item.Categories)
                    {
                        DataModels.RN.RSS.RSSFeedCategory cat = new DataModels.RN.RSS.RSSFeedCategory();
                        cat.CategoryRNId = c.CategoryRNId;
                        feed.InitialCategories.Add(cat);
                    }
                    foreach (var t in item.Tags)
                    {
                        DataModels.RN.RSS.RSSFeedTag tag = new DataModels.RN.RSS.RSSFeedTag();
                        tag.TagName = t.TagName;
                        feed.InitialTags.Add(tag);
                    }
                    dc.RssFeeds.Add(feed);
                    dc.SaveChanges();
                }
                else
                    ff.IsRemoved = false;
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, GetType());
            }

            return this;
        }