private void DownloadAndSaveVideoData(VideoFeed videoFeed, string eventName) { var hasMoreItems = true; int pageIndex = 1; string lastItemTitle = string.Empty; do { SyndicationFeed feed = null; try { using (XmlReader reader = XmlReader.Create(videoFeed.GetBuildVideoFeedUrlByPage(pageIndex, eventName))) { feed = SyndicationFeed.Load(reader); } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } if (feed != null && feed.Items != null && feed.Items.Count() > 0) { //check last item title for match if (lastItemTitle == feed.Items.Last().Title.Text) { break; } foreach (var item in feed.Items) { var title = CleanVideoTitle(item.Title.Text); var video = _videoRepository.FindByTitle(title); if (video == null) { video = SaveVideoData(item, videoFeed.MediaType, eventName, videoFeed.FeedYear); } else { UpdateVideoData(item, videoFeed.MediaType); } //Speakers var creators = GetExtensionElementValue(item, "creator"); if (!string.IsNullOrEmpty(creators)) { var comma = ",".ToCharArray(); var presenterList = creators.Split(comma, StringSplitOptions.RemoveEmptyEntries); if (presenterList.Count() > 0) { foreach (var presenter in presenterList) { var speaker = _speakerRepository.FindByNameAndEventYear(eventName, presenter.Trim(), videoFeed.FeedYear); if (speaker == null) { speaker = _speakerRepository.Add(new Speaker() { Name = presenter.Trim(), EventYear = videoFeed.FeedYear, EventName = eventName }); } var speakerVideo = _speakerVideoRepository.FindBySpeakerIdAndVideoId(speaker.Id, video.Id); if (speakerVideo == null) { _speakerVideoRepository.Add(new SpeakerVideo() { SpeakerId = speaker.Id, VideoId = video.Id }); } } } } } lastItemTitle = feed.Items.Last().Title.Text; pageIndex++; } else { hasMoreItems = false; } }while (hasMoreItems == true); }