Ejemplo n.º 1
0
        // Please set the following connection strings in app.config for this WebJob to run:
        // AzureWebJobsDashboard and AzureWebJobsStorage
        private static void Main()
        {
            using (TechReadyDbContext ctx = new TechReadyDbContext())
            {
                var feedsToCheck = (from c in ctx.LearningResourceFeeds
                                    select c).ToList();

                foreach (var feedType in feedsToCheck)
                {
                    XmlReader reader = XmlReader.Create(feedType.RSSLink,
                                                        new XmlReaderSettings()
                    {
                    });

                    SyndicationFeed feed = SyndicationFeed.Load(reader);

                    foreach (SyndicationItem i in feed.Items)
                    {
                        var link = i.Links[0].Uri.ToString();
                        if (ctx.LearningResources.FirstOrDefault(x => x.ContentURL == link) == null)
                        {
                            try
                            {
                                XmlSyndicationContent content = i.Content as XmlSyndicationContent;
                                LearningResource      lr      = new LearningResource();


                                lr.Title         = i.Title.Text;
                                lr.AudienceTypes = new List <AudienceType>();
                                foreach (AudienceType a in feedType.AudienceTypes)
                                {
                                    lr.AudienceTypes.Add(a);
                                }

                                lr.ContentURL             = i.Links[0].Uri.ToString();
                                lr.LearningResourceTypeID = feedType.LearningResourceTypeID;
                                lr.PrimaryTechnologyID    = feedType.PrimaryTechnologyID;
                                lr.PublicationTime        =
                                    i.PublishDate.UtcDateTime;

                                if (feedType.LearningResourceTypeID == 1)
                                {
                                    lr.Description  = GetExtensionElementValue <string>(i, "summary");
                                    lr.ThumbnailURL = GetThumbnailChannel9(i);
                                }
                                else
                                {
                                    lr.Description  = i.Summary.Text;
                                    lr.ThumbnailURL = "";
                                }
                                ctx.LearningResources.Add(lr);
                            }
                            catch
                            {
                            }
                        }
                    }
                }
                ctx.SaveChanges();
            }
        }