public static Episode ConvertToEpisode(this VirtualEpisode episode, Show show, Season season) { return(new Episode { Id = Guid.NewGuid().ToString(), ShowId = show.Id, ShowName = show.Name, Name = episode.Name, LocationType = LocationType.Virtual, IndexNumber = episode.EpisodeNumber, ParentId = season.Id, PremiereDate = new DateTimeOffset(episode.FirstAired ?? new DateTime(), TimeSpan.Zero) }); }
public void ConvertToEpisode_Should_Convert_Virtual_Episode() { var show = new ShowBuilder("1", "1").Build(); var showEpisode = show.Episodes.First(); var showSeason = show.Seasons.First(); var virtualEpisode = new VirtualEpisode(showEpisode, showSeason); var episode = virtualEpisode.ConvertToEpisode(show, showSeason); episode.ShowId.Should().Be(show.Id); episode.ShowName.Should().Be(show.Name); episode.Name.Should().Be(showEpisode.Name); episode.LocationType.Should().Be(LocationType.Virtual); episode.IndexNumber.Should().Be(showEpisode.IndexNumber); episode.ParentId.Should().Be(showSeason.Id); // ReSharper disable once PossibleInvalidOperationException episode.PremiereDate.Should().Be(showEpisode.PremiereDate); }
public static VirtualEpisode ConvertToVirtualEpisode(this Data episode) { var virtualEpisode = new VirtualEpisode { Id = episode.Id.ToString(), FirstAired = DateTime.Parse(episode.FirstAired), Name = episode.EpisodeName, EpisodeNumber = episode.AiredEpisodeNumber, SeasonNumber = episode.AiredSeason }; if (episode.AiredSeason > 500) { virtualEpisode.SeasonNumber = Convert.ToInt32(Math.Floor(episode.DvdSeason ?? episode.AiredSeason)); } return(virtualEpisode); }
private static bool IsEpisodeMissing(IEnumerable <Episode> localEpisodes, Season season, VirtualEpisode tvdbEpisode) { if (season == null) { return(true); } foreach (var localEpisode in localEpisodes) { if (localEpisode.ParentId == season.Id) { if (!localEpisode.IndexNumberEnd.HasValue) { if (localEpisode.IndexNumber == tvdbEpisode.EpisodeNumber) { return(false); } } else { if (localEpisode.IndexNumber <= tvdbEpisode.EpisodeNumber && localEpisode.IndexNumberEnd >= tvdbEpisode.EpisodeNumber) { return(false); } } } } return(true); }