private static CalendarEpisode MapToModel(Episode episode) { return new CalendarEpisode { FirstAired = episode.FirstAired, Title = episode.Title, Number = episode.Number, SeasonNumber = episode.SeasonNumber, ShowId = episode.ShowId, ShowName = episode.Show.Name }; }
private async Task AddEpisodesAsync(Show show, IEnumerable<int> ids) { var records = await this.AdvancedEpisodeClient.GetFullEpisodesAsync(ids); foreach (var record in records) { var episode = new Episode(); this.MapToEpisode(episode, record); show.Episodes.Add(episode); } }
private static MyEpisode EpisodeToModel(Episode episode) { if (episode == null) { return null; } return new MyEpisode { FirstAired = episode.FirstAired, Title = episode.Title, Number = episode.Number, SeasonNumber = episode.SeasonNumber }; }
private void MapToEpisode(Episode episode, EpisodeRecord data) { episode.Title = data.EpisodeName; episode.Description = data.Overview; episode.ImdbId = data.ImdbId; episode.Number = data.AiredEpisodeNumber.Value; episode.SeasonNumber = data.AiredSeason.Value; episode.TheTvDbId = data.Id; if (!string.IsNullOrWhiteSpace(data.FirstAired)) { episode.FirstAired = this.DateParser.ParseFirstAired(data.FirstAired); } episode.LastUpdated = data.LastUpdated.ToDateTime(); }
public async Task PopulateEpisodeAsync(Episode episode) { var response = await this.EpisodesClient.GetAsync(episode.TheTvDbId); this.MapToEpisode(episode, response.Data); }
// ReSharper disable once InconsistentNaming public async Task PopulateEpisodeAsync_should_map_the_episode() { var episodesClient = Substitute.For<IEpisodesClient>(); var fetcher = new EpisodeFetcher(episodesClient, Substitute.For<IAdvancedEpisodeClient>(), Substitute.For<IAdvancedSeriesClient>()); var episode = new Episode { TheTvDbId = 42 }; var response = new TvDbResponse<EpisodeRecord> { Data = new EpisodeRecord { Id = 42, EpisodeName = "Rose", Overview = "Rose Tyler stumbles across a man called The Doctor...", ImdbId = "tt0562992", AiredEpisodeNumber = 1, AiredSeason = 1, FirstAired = "2005-03-26", LastUpdated = 1477941112 } }; episodesClient.GetAsync(episode.TheTvDbId).Returns(response); await fetcher.PopulateEpisodeAsync(episode); var record = response.Data; Assert.Equal(record.EpisodeName, episode.Title); Assert.Equal(record.Overview, episode.Description); Assert.Equal(record.ImdbId, episode.ImdbId); Assert.Equal(record.AiredEpisodeNumber, episode.Number); Assert.Equal(record.AiredSeason, episode.SeasonNumber); Assert.Equal(new DateTime(2005, 3, 26), episode.FirstAired); Assert.Equal(new DateTime(2016, 10, 31, 19, 11, 52), episode.LastUpdated); }
// ReSharper disable once InconsistentNaming public async Task PopulateEpisodeAsync_should_call_the_client() { var episodesClient = Substitute.For<IEpisodesClient>(); var fetcher = new EpisodeFetcher(episodesClient, Substitute.For<IAdvancedEpisodeClient>(), Substitute.For<IAdvancedSeriesClient>()); var episode = new Episode { TheTvDbId = 42 }; var response = new TvDbResponse<EpisodeRecord> { Data = new EpisodeRecord { Id = 42, AiredSeason = 1, AiredEpisodeNumber = 1 } }; episodesClient.GetAsync(episode.TheTvDbId).Returns(response); await fetcher.PopulateEpisodeAsync(episode); await episodesClient.Received().GetAsync(episode.TheTvDbId); }