Browse Source

fix show/season views

pull/31/head
Jason Dove 6 years ago
parent
commit
d3f47c71bf
  1. 2
      ErsatzTV.Core.Tests/Fakes/FakeTelevisionRepository.cs
  2. 2
      ErsatzTV.Core/Interfaces/Repositories/ITelevisionRepository.cs
  3. 46
      ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs
  4. 1
      ErsatzTV.Infrastructure/Data/TvContext.cs

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

@ -41,7 +41,7 @@ namespace ErsatzTV.Core.Tests.Fakes @@ -41,7 +41,7 @@ namespace ErsatzTV.Core.Tests.Fakes
public Task<int> GetEpisodeCount(int televisionSeasonId) => throw new NotSupportedException();
public Task<List<EpisodeMetadata>> GetPagedEpisodes(int televisionSeasonId, int pageNumber, int pageSize) =>
public Task<List<EpisodeMetadata>> GetPagedEpisodes(int seasonId, int pageNumber, int pageSize) =>
throw new NotSupportedException();
public Task<Option<Show>> GetShowByPath(int mediaSourceId, string path) => throw new NotSupportedException();

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

@ -22,7 +22,7 @@ namespace ErsatzTV.Core.Interfaces.Repositories @@ -22,7 +22,7 @@ namespace ErsatzTV.Core.Interfaces.Repositories
Task<List<Episode>> GetSeasonItems(int seasonId);
Task<Option<Episode>> GetEpisode(int televisionEpisodeId);
Task<int> GetEpisodeCount(int televisionSeasonId);
Task<List<EpisodeMetadata>> GetPagedEpisodes(int televisionSeasonId, int pageNumber, int pageSize);
Task<List<EpisodeMetadata>> GetPagedEpisodes(int seasonId, int pageNumber, int pageSize);
Task<Option<Show>> GetShowByMetadata(ShowMetadata metadata);
Task<Either<BaseError, Show>> AddShow(

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

@ -57,20 +57,19 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -57,20 +57,19 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.Map(Optional);
public Task<int> GetShowCount() =>
// TODO: fix split shows
_dbContext.Shows
.AsNoTracking()
.CountAsync();
public Task<List<ShowMetadata>> GetPagedShows(int pageNumber, int pageSize) =>
// TODO: fix this
new List<ShowMetadata>().AsTask();
// _dbContext.ShowMetadata
// .AsNoTracking()
// .Include(s => s.Show)
// .OrderBy(s => s.Metadata == null ? string.Empty : s.Metadata.SortTitle)
// .Skip((pageNumber - 1) * pageSize)
// .Take(pageSize)
// .ToListAsync();
// TODO: fix split shows
_dbContext.ShowMetadata
.AsNoTracking()
.OrderBy(sm => sm.SortTitle)
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToListAsync();
public Task<List<Season>> GetAllSeasons() =>
_dbContext.Seasons
@ -118,23 +117,18 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -118,23 +117,18 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.Where(e => e.SeasonId == televisionSeasonId)
.CountAsync();
public Task<List<EpisodeMetadata>> GetPagedEpisodes(
int televisionSeasonId,
int pageNumber,
int pageSize) =>
// TODO: fix this
new List<EpisodeMetadata>().AsTask();
// _dbContext.EpisodeMetadata
// .AsNoTracking()
// .Include(e => e.Metadata)
// .Include(e => e.Season)
// .ThenInclude(s => s.TelevisionShow)
// .ThenInclude(s => s.Metadata)
// .Where(e => e.SeasonId == televisionSeasonId)
// .OrderBy(s => s.Metadata.Episode)
// .Skip((pageNumber - 1) * pageSize)
// .Take(pageSize)
// .ToListAsync();
public Task<List<EpisodeMetadata>> GetPagedEpisodes(int seasonId, int pageNumber, int pageSize) =>
_dbContext.EpisodeMetadata
.AsNoTracking()
.Filter(em => em.Episode.SeasonId == seasonId)
.Include(em => em.Episode)
.ThenInclude(e => e.Season)
.ThenInclude(s => s.Show)
.ThenInclude(s => s.ShowMetadata)
.OrderBy(em => em.SortTitle)
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToListAsync();
public async Task<Option<Show>> GetShowByMetadata(ShowMetadata metadata)
{

1
ErsatzTV.Infrastructure/Data/TvContext.cs

@ -26,6 +26,7 @@ namespace ErsatzTV.Infrastructure.Data @@ -26,6 +26,7 @@ namespace ErsatzTV.Infrastructure.Data
public DbSet<ShowMetadata> ShowMetadata { get; set; }
public DbSet<Season> Seasons { get; set; }
public DbSet<Episode> Episodes { get; set; }
public DbSet<EpisodeMetadata> EpisodeMetadata { get; set; }
public DbSet<PlexMovie> PlexMovieMediaItems { get; set; }
public DbSet<Collection> Collections { get; set; }
public DbSet<ProgramSchedule> ProgramSchedules { get; set; }

Loading…
Cancel
Save