diff --git a/ErsatzTV.Core.Tests/Fakes/FakeTelevisionRepository.cs b/ErsatzTV.Core.Tests/Fakes/FakeTelevisionRepository.cs index 02882d76e..6eda1708d 100644 --- a/ErsatzTV.Core.Tests/Fakes/FakeTelevisionRepository.cs +++ b/ErsatzTV.Core.Tests/Fakes/FakeTelevisionRepository.cs @@ -51,7 +51,7 @@ namespace ErsatzTV.Core.Tests.Fakes AddShow(int libraryPathId, string showFolder, ShowMetadata metadata) => throw new NotSupportedException(); - public Task> GetOrAddSeason(Show show, string path, int seasonNumber) => + public Task> GetOrAddSeason(Show show, int libraryPathId, int seasonNumber) => throw new NotSupportedException(); public Task> GetOrAddEpisode(Season season, LibraryPath libraryPath, string path) => diff --git a/ErsatzTV.Core/Interfaces/Repositories/ITelevisionRepository.cs b/ErsatzTV.Core/Interfaces/Repositories/ITelevisionRepository.cs index 5fbb4f761..9ac405b84 100644 --- a/ErsatzTV.Core/Interfaces/Repositories/ITelevisionRepository.cs +++ b/ErsatzTV.Core/Interfaces/Repositories/ITelevisionRepository.cs @@ -24,22 +24,9 @@ namespace ErsatzTV.Core.Interfaces.Repositories Task GetEpisodeCount(int seasonId); Task> GetPagedEpisodes(int seasonId, int pageNumber, int pageSize); Task> GetShowByMetadata(int libraryPathId, ShowMetadata metadata); - - Task> AddShow( - int libraryPathId, - string showFolder, - ShowMetadata metadata); - - Task> GetOrAddSeason( - Show show, - string path, - int seasonNumber); - - Task> GetOrAddEpisode( - Season season, - LibraryPath libraryPath, - string path); - + Task> AddShow(int libraryPathId, string showFolder, ShowMetadata metadata); + Task> GetOrAddSeason(Show show, int libraryPathId, int seasonNumber); + Task> GetOrAddEpisode(Season season, LibraryPath libraryPath, string path); Task DeleteEmptyShows(); } } diff --git a/ErsatzTV.Core/Metadata/TelevisionFolderScanner.cs b/ErsatzTV.Core/Metadata/TelevisionFolderScanner.cs index ef6c099f4..1e7227a9b 100644 --- a/ErsatzTV.Core/Metadata/TelevisionFolderScanner.cs +++ b/ErsatzTV.Core/Metadata/TelevisionFolderScanner.cs @@ -93,7 +93,7 @@ namespace ErsatzTV.Core.Metadata async seasonNumber => { Either maybeSeason = await _televisionRepository - .GetOrAddSeason(show, seasonFolder, seasonNumber) + .GetOrAddSeason(show, libraryPath.Id, seasonNumber) .BindT(season => UpdatePoster(season, seasonFolder)); await maybeSeason.Match( diff --git a/ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs b/ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs index b9b6df85b..9dd94ed82 100644 --- a/ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs +++ b/ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs @@ -181,6 +181,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories { try { + metadata.DateAdded = DateTime.UtcNow; var show = new Show { LibraryPathId = libraryPathId, @@ -199,7 +200,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories } } - public async Task> GetOrAddSeason(Show show, string path, int seasonNumber) + public async Task> GetOrAddSeason(Show show, int libraryPathId, int seasonNumber) { Option maybeExisting = await _dbContext.Seasons .Include(s => s.SeasonMetadata) @@ -208,7 +209,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories return await maybeExisting.Match( season => Right(season).AsTask(), - () => AddSeason(show, path, seasonNumber)); + () => AddSeason(show, libraryPathId, seasonNumber)); } public async Task> GetOrAddEpisode( @@ -266,12 +267,13 @@ namespace ErsatzTV.Infrastructure.Data.Repositories .Filter(e => e.SeasonId == seasonId) .ToListAsync(); - private async Task> AddSeason(Show show, string path, int seasonNumber) + private async Task> AddSeason(Show show, int libraryPathId, int seasonNumber) { try { var season = new Season { + LibraryPathId = libraryPathId, ShowId = show.Id, SeasonNumber = seasonNumber, Episodes = new List(),