Browse Source

fix adding new seasons

pull/31/head
Jason Dove 6 years ago
parent
commit
328775dbc7
  1. 2
      ErsatzTV.Core.Tests/Fakes/FakeTelevisionRepository.cs
  2. 19
      ErsatzTV.Core/Interfaces/Repositories/ITelevisionRepository.cs
  3. 2
      ErsatzTV.Core/Metadata/TelevisionFolderScanner.cs
  4. 8
      ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs

2
ErsatzTV.Core.Tests/Fakes/FakeTelevisionRepository.cs

@ -51,7 +51,7 @@ namespace ErsatzTV.Core.Tests.Fakes @@ -51,7 +51,7 @@ namespace ErsatzTV.Core.Tests.Fakes
AddShow(int libraryPathId, string showFolder, ShowMetadata metadata) =>
throw new NotSupportedException();
public Task<Either<BaseError, Season>> GetOrAddSeason(Show show, string path, int seasonNumber) =>
public Task<Either<BaseError, Season>> GetOrAddSeason(Show show, int libraryPathId, int seasonNumber) =>
throw new NotSupportedException();
public Task<Either<BaseError, Episode>> GetOrAddEpisode(Season season, LibraryPath libraryPath, string path) =>

19
ErsatzTV.Core/Interfaces/Repositories/ITelevisionRepository.cs

@ -24,22 +24,9 @@ namespace ErsatzTV.Core.Interfaces.Repositories @@ -24,22 +24,9 @@ namespace ErsatzTV.Core.Interfaces.Repositories
Task<int> GetEpisodeCount(int seasonId);
Task<List<EpisodeMetadata>> GetPagedEpisodes(int seasonId, int pageNumber, int pageSize);
Task<Option<Show>> GetShowByMetadata(int libraryPathId, ShowMetadata metadata);
Task<Either<BaseError, Show>> AddShow(
int libraryPathId,
string showFolder,
ShowMetadata metadata);
Task<Either<BaseError, Season>> GetOrAddSeason(
Show show,
string path,
int seasonNumber);
Task<Either<BaseError, Episode>> GetOrAddEpisode(
Season season,
LibraryPath libraryPath,
string path);
Task<Either<BaseError, Show>> AddShow(int libraryPathId, string showFolder, ShowMetadata metadata);
Task<Either<BaseError, Season>> GetOrAddSeason(Show show, int libraryPathId, int seasonNumber);
Task<Either<BaseError, Episode>> GetOrAddEpisode(Season season, LibraryPath libraryPath, string path);
Task<Unit> DeleteEmptyShows();
}
}

2
ErsatzTV.Core/Metadata/TelevisionFolderScanner.cs

@ -93,7 +93,7 @@ namespace ErsatzTV.Core.Metadata @@ -93,7 +93,7 @@ namespace ErsatzTV.Core.Metadata
async seasonNumber =>
{
Either<BaseError, Season> maybeSeason = await _televisionRepository
.GetOrAddSeason(show, seasonFolder, seasonNumber)
.GetOrAddSeason(show, libraryPath.Id, seasonNumber)
.BindT(season => UpdatePoster(season, seasonFolder));
await maybeSeason.Match(

8
ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs

@ -181,6 +181,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -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 @@ -199,7 +200,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
}
}
public async Task<Either<BaseError, Season>> GetOrAddSeason(Show show, string path, int seasonNumber)
public async Task<Either<BaseError, Season>> GetOrAddSeason(Show show, int libraryPathId, int seasonNumber)
{
Option<Season> maybeExisting = await _dbContext.Seasons
.Include(s => s.SeasonMetadata)
@ -208,7 +209,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -208,7 +209,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
return await maybeExisting.Match(
season => Right<BaseError, Season>(season).AsTask(),
() => AddSeason(show, path, seasonNumber));
() => AddSeason(show, libraryPathId, seasonNumber));
}
public async Task<Either<BaseError, Episode>> GetOrAddEpisode(
@ -266,12 +267,13 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -266,12 +267,13 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.Filter(e => e.SeasonId == seasonId)
.ToListAsync();
private async Task<Either<BaseError, Season>> AddSeason(Show show, string path, int seasonNumber)
private async Task<Either<BaseError, Season>> AddSeason(Show show, int libraryPathId, int seasonNumber)
{
try
{
var season = new Season
{
LibraryPathId = libraryPathId,
ShowId = show.Id,
SeasonNumber = seasonNumber,
Episodes = new List<Episode>(),

Loading…
Cancel
Save