Beispiel #1
0
        public void ShouldUpdateSimilarPrograms()
        {
            var programA =
                new GuideEnricherProgram(
                    new GuideProgram
            {
                Title               = "Intervention",
                SubTitle            = "Sarah; Mikeal",
                PreviouslyAiredTime = new DateTime(2011, 6, 27),
                GuideProgramId      = Guid.NewGuid()
            });

            var programB =
                new GuideEnricherProgram(
                    new GuideProgram
            {
                Title          = "Intervention",
                SubTitle       = "Sarah; Mikeal",
                GuideProgramId = Guid.NewGuid()
            });

            var matchedSeries = new GuideEnricherSeries("Intervention", false, false, false);
            var pendingSeries = new List <GuideEnricherProgram>(1)
            {
                programB
            };

            matchedSeries.AddProgram(programA);



            var similarPrograms = matchedSeries.FindSimilarPrograms(pendingSeries, programA);

            similarPrograms.Count.ShouldEqual(1);
        }
        public void ShouldUpdateSimilarPrograms()
        {
            var programA =
                new GuideEnricherProgram(
                    new GuideProgram
                    {
                        Title = "Intervention",
                        SubTitle = "Sarah; Mikeal",
                        PreviouslyAiredTime = new DateTime(2011, 6, 27),
                        GuideProgramId = Guid.NewGuid()
                    });

            var programB =
                new GuideEnricherProgram(
                    new GuideProgram
                    {
                        Title = "Intervention",
                        SubTitle = "Sarah; Mikeal",
                        GuideProgramId = Guid.NewGuid()
                    });

            var matchedSeries = new GuideEnricherSeries("Intervention", false, false, false);
            var pendingSeries = new List<GuideEnricherProgram>(1) { programB };

            matchedSeries.AddProgram(programA);



            var similarPrograms = matchedSeries.FindSimilarPrograms(pendingSeries, programA);

            similarPrograms.Count.ShouldEqual(1);
        }
 private void EnrichProgramsInSeries(GuideEnricherSeries series, TvdbSeries OnlineSeries)
 {
     this.tvdbLibAccess.DebugEpisodeDump(OnlineSeries);
     do
     {
         GuideEnricherProgram guideProgram = series.PendingPrograms[0];
         this.tvdbLibAccess.EnrichProgram(guideProgram, OnlineSeries);
         if (guideProgram.Matched)
         {
             series.AddAllToEnrichedPrograms(guideProgram);
         }
         else
         {
             series.AddAllToFailedPrograms(guideProgram);
         }
     }while (series.PendingPrograms.Count > 0);
 }
        public void EnrichSeries(GuideEnricherSeries series)
        {
            series.TvDbSeriesID = this.tvdbLibAccess.getSeriesId(series.Title);
            if (series.TvDbSeriesID == 0)
            {
                series.isIgnored = true;
            }

            if (series.isIgnored)
            {
                series.IgnoredPrograms.AddRange(series.PendingPrograms);
                series.PendingPrograms.Clear();
            }

            if (series.PendingPrograms.Count > 0)
            {
                log.DebugFormat("Beginning enrichment of episodes for series {0}", series.Title);
                var onlineSeries = this.tvdbLibAccess.GetTvdbSeries(series.TvDbSeriesID, false);
                this.EnrichProgramsInSeries(series, onlineSeries);
                if (series.FailedPrograms.Count > 0)
                {
                    log.DebugFormat("The first run for the series {0} had unmatched episodes.  Checking for online updates.", series.Title);

                    List <string> currentTvDbEpisodes = new List <string>();
                    onlineSeries.Episodes.ForEach(x => currentTvDbEpisodes.Add(x.EpisodeName));

                    TvdbSeries updatedOnlineSeries = this.tvdbLibAccess.GetTvdbSeries(series.TvDbSeriesID, true);
                    if (updatedOnlineSeries.Episodes.FindAll(x => !currentTvDbEpisodes.Contains(x.EpisodeName)).Count > 0)
                    {
                        log.DebugFormat("New episodes were found.  Trying enrichment again.");
                        series.TvDbInformationRefreshed();
                        this.EnrichProgramsInSeries(series, updatedOnlineSeries);
                    }
                }

                this.enrichedPrograms.AddRange(series.SuccessfulPrograms);
            }
        }
        private void EnrichProgramsInSeries(GuideEnricherSeries series, TvdbSeries OnlineSeries)
        {
            this.tvdbLibAccess.DebugEpisodeDump(OnlineSeries);
            do
            {
                GuideEnricherProgram guideProgram = series.PendingPrograms[0];
                this.tvdbLibAccess.EnrichProgram(guideProgram, OnlineSeries);
                if (guideProgram.Matched)
                {
                    series.AddAllToEnrichedPrograms(guideProgram);
                }
                else
                {
                    series.AddAllToFailedPrograms(guideProgram);
                }
            }
            while (series.PendingPrograms.Count > 0);

        }
        public void EnrichSeries(GuideEnricherSeries series)
        {
            series.TvDbSeriesID = this.tvdbLibAccess.getSeriesId(series.Title);
            if (series.TvDbSeriesID == 0)
            {
                series.isIgnored = true;
            }

            if (series.isIgnored)
            {
                series.IgnoredPrograms.AddRange(series.PendingPrograms);
                series.PendingPrograms.Clear();
            }

            if (series.PendingPrograms.Count > 0)
            {
                log.DebugFormat("Beginning enrichment of episodes for series {0}", series.Title);
                var onlineSeries = this.tvdbLibAccess.GetTvdbSeries(series.TvDbSeriesID, false);
                this.EnrichProgramsInSeries(series, onlineSeries);
                if (series.FailedPrograms.Count > 0)
                {
                    log.DebugFormat("The first run for the series {0} had unmatched episodes.  Checking for online updates.", series.Title);

                    List<string> currentTvDbEpisodes = new List<string>();
                    onlineSeries.Episodes.ForEach(x => currentTvDbEpisodes.Add(x.EpisodeName));

                    TvdbSeries updatedOnlineSeries = this.tvdbLibAccess.GetTvdbSeries(series.TvDbSeriesID, true);
                    if (updatedOnlineSeries.Episodes.FindAll(x => !currentTvDbEpisodes.Contains(x.EpisodeName)).Count > 0)
                    {
                        log.DebugFormat("New episodes were found.  Trying enrichment again.");
                        series.TvDbInformationRefreshed();
                        this.EnrichProgramsInSeries(series, updatedOnlineSeries);
                    }
                }

                this.enrichedPrograms.AddRange(series.SuccessfulPrograms);
            }
        }