diff --git a/ErsatzTV.Application/MediaCards/Mapper.cs b/ErsatzTV.Application/MediaCards/Mapper.cs index e62863b9b..23e88ad9e 100644 --- a/ErsatzTV.Application/MediaCards/Mapper.cs +++ b/ErsatzTV.Application/MediaCards/Mapper.cs @@ -38,7 +38,7 @@ namespace ErsatzTV.Application.MediaCards televisionEpisode.Poster, televisionEpisode.Metadata?.Episode.ToString()); - internal static MovieCardViewModel ProjectToViewModel(NewMovieMetadata movieMetadata) => + internal static MovieCardViewModel ProjectToViewModel(MovieMetadata movieMetadata) => new( movieMetadata.MovieId, movieMetadata.Title, diff --git a/ErsatzTV.Core.Tests/Scheduling/PlayoutBuilderTests.cs b/ErsatzTV.Core.Tests/Scheduling/PlayoutBuilderTests.cs index 4bb8eebbe..ec80fc07b 100644 --- a/ErsatzTV.Core.Tests/Scheduling/PlayoutBuilderTests.cs +++ b/ErsatzTV.Core.Tests/Scheduling/PlayoutBuilderTests.cs @@ -611,7 +611,7 @@ namespace ErsatzTV.Core.Tests.Scheduling new() { Id = id, - MovieMetadata = new List { new() { ReleaseDate = aired } }, + MovieMetadata = new List { new() { ReleaseDate = aired } }, Statistics = new MediaItemStatistics { Duration = duration } }; diff --git a/ErsatzTV.Core/Domain/MediaItem/Movie.cs b/ErsatzTV.Core/Domain/MediaItem/Movie.cs index 6d010550e..6465026e2 100644 --- a/ErsatzTV.Core/Domain/MediaItem/Movie.cs +++ b/ErsatzTV.Core/Domain/MediaItem/Movie.cs @@ -4,7 +4,7 @@ namespace ErsatzTV.Core.Domain { public class Movie : MediaItem { - public List MovieMetadata { get; set; } + public List MovieMetadata { get; set; } public List MediaVersions { get; set; } diff --git a/ErsatzTV.Core/Domain/Metadata/NewMovieMetadata.cs b/ErsatzTV.Core/Domain/Metadata/MovieMetadata.cs similarity index 85% rename from ErsatzTV.Core/Domain/Metadata/NewMovieMetadata.cs rename to ErsatzTV.Core/Domain/Metadata/MovieMetadata.cs index 103e21040..04372bffb 100644 --- a/ErsatzTV.Core/Domain/Metadata/NewMovieMetadata.cs +++ b/ErsatzTV.Core/Domain/Metadata/MovieMetadata.cs @@ -1,6 +1,6 @@ namespace ErsatzTV.Core.Domain { - public class NewMovieMetadata : Metadata + public class MovieMetadata : Metadata { public string Outline { get; set; } public string Plot { get; set; } diff --git a/ErsatzTV.Core/Interfaces/Repositories/IMovieRepository.cs b/ErsatzTV.Core/Interfaces/Repositories/IMovieRepository.cs index 4b8808545..e7bd50a7f 100644 --- a/ErsatzTV.Core/Interfaces/Repositories/IMovieRepository.cs +++ b/ErsatzTV.Core/Interfaces/Repositories/IMovieRepository.cs @@ -12,6 +12,6 @@ namespace ErsatzTV.Core.Interfaces.Repositories Task> GetOrAdd(PlexLibrary library, PlexMovie item); Task Update(Movie movie); Task GetMovieCount(); - Task> GetPagedMovies(int pageNumber, int pageSize); + Task> GetPagedMovies(int pageNumber, int pageSize); } } diff --git a/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs b/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs index 5a37f31e8..c8cd12c3c 100644 --- a/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs +++ b/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs @@ -36,10 +36,10 @@ namespace ErsatzTV.Core.Metadata return metadata; } - public static NewMovieMetadata GetFallbackMetadata(Movie movie) + public static MovieMetadata GetFallbackMetadata(Movie movie) { string fileName = Path.GetFileName(movie.Path); - var metadata = new NewMovieMetadata { MetadataKind = MetadataKind.Fallback, Title = fileName ?? movie.Path }; + var metadata = new MovieMetadata { MetadataKind = MetadataKind.Fallback, Title = fileName ?? movie.Path }; if (fileName != null) { @@ -76,7 +76,7 @@ namespace ErsatzTV.Core.Metadata return metadata; } - private static NewMovieMetadata GetMovieMetadata(string fileName, NewMovieMetadata metadata) + private static MovieMetadata GetMovieMetadata(string fileName, MovieMetadata metadata) { try { diff --git a/ErsatzTV.Core/Metadata/LocalMetadataProvider.cs b/ErsatzTV.Core/Metadata/LocalMetadataProvider.cs index 21f53ecf3..968efe26b 100644 --- a/ErsatzTV.Core/Metadata/LocalMetadataProvider.cs +++ b/ErsatzTV.Core/Metadata/LocalMetadataProvider.cs @@ -95,9 +95,9 @@ namespace ErsatzTV.Core.Metadata await _televisionRepository.Update(mediaItem); } - private async Task ApplyMetadataUpdate(Movie movie, NewMovieMetadata metadata) + private async Task ApplyMetadataUpdate(Movie movie, MovieMetadata metadata) { - movie.MovieMetadata = new List { metadata }; + movie.MovieMetadata = new List { metadata }; await _mediaItemRepository.Update(movie); } @@ -114,7 +114,7 @@ namespace ErsatzTV.Core.Metadata await _televisionRepository.Update(televisionShow); } - private async Task> LoadMetadata(Movie mediaItem, string nfoFileName) + private async Task> LoadMetadata(Movie mediaItem, string nfoFileName) { if (nfoFileName == null || !File.Exists(nfoFileName)) { @@ -215,14 +215,14 @@ namespace ErsatzTV.Core.Metadata } } - private async Task> LoadMovieMetadata(Movie mediaItem, string nfoFileName) + private async Task> LoadMovieMetadata(Movie mediaItem, string nfoFileName) { try { await using FileStream fileStream = File.Open(nfoFileName, FileMode.Open, FileAccess.Read); Option maybeNfo = MovieSerializer.Deserialize(fileStream) as MovieNfo; - return maybeNfo.Match>( - nfo => new NewMovieMetadata + return maybeNfo.Match>( + nfo => new MovieMetadata { MetadataKind = MetadataKind.Sidecar, DateUpdated = File.GetLastWriteTimeUtc(nfoFileName), diff --git a/ErsatzTV.Infrastructure/Data/Configurations/Metadata/NewMovieMetadataConfiguration.cs b/ErsatzTV.Infrastructure/Data/Configurations/Metadata/NewMovieMetadataConfiguration.cs index 44164c489..94300731d 100644 --- a/ErsatzTV.Infrastructure/Data/Configurations/Metadata/NewMovieMetadataConfiguration.cs +++ b/ErsatzTV.Infrastructure/Data/Configurations/Metadata/NewMovieMetadataConfiguration.cs @@ -4,8 +4,8 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace ErsatzTV.Infrastructure.Data.Configurations { - public class NewMovieMetadataConfiguration : IEntityTypeConfiguration + public class NewMovieMetadataConfiguration : IEntityTypeConfiguration { - public void Configure(EntityTypeBuilder builder) => builder.ToTable("NewMovieMetadata"); + public void Configure(EntityTypeBuilder builder) => builder.ToTable("NewMovieMetadata"); } } diff --git a/ErsatzTV.Infrastructure/Data/Repositories/MovieRepository.cs b/ErsatzTV.Infrastructure/Data/Repositories/MovieRepository.cs index a7bc74744..fecaccf9c 100644 --- a/ErsatzTV.Infrastructure/Data/Repositories/MovieRepository.cs +++ b/ErsatzTV.Infrastructure/Data/Repositories/MovieRepository.cs @@ -66,7 +66,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories public Task GetMovieCount() => _dbConnection.QuerySingleAsync(@"SELECT COUNT(DISTINCT MovieId) FROM NewMovieMetadata"); - public Task> GetPagedMovies(int pageNumber, int pageSize) => + public Task> GetPagedMovies(int pageNumber, int pageSize) => _dbContext.MovieMetadata.FromSqlRaw(@"SELECT * FROM NewMovieMetadata WHERE Id IN (SELECT Id FROM NewMovieMetadata GROUP BY MovieId, MetadataKind HAVING MetadataKind = MAX(MetadataKind)) ORDER BY SortTitle diff --git a/ErsatzTV.Infrastructure/Data/TvContext.cs b/ErsatzTV.Infrastructure/Data/TvContext.cs index d3aca10cf..f105488aa 100644 --- a/ErsatzTV.Infrastructure/Data/TvContext.cs +++ b/ErsatzTV.Infrastructure/Data/TvContext.cs @@ -21,7 +21,7 @@ namespace ErsatzTV.Infrastructure.Data public DbSet PlexLibraries { get; set; } public DbSet MediaItems { get; set; } public DbSet Movies { get; set; } - public DbSet MovieMetadata { get; set; } + public DbSet MovieMetadata { get; set; } public DbSet Shows { get; set; } public DbSet Seasons { get; set; } public DbSet Episodes { get; set; } diff --git a/ErsatzTV.Infrastructure/Plex/PlexServerApiClient.cs b/ErsatzTV.Infrastructure/Plex/PlexServerApiClient.cs index 5d6fe5e2f..81ea35188 100644 --- a/ErsatzTV.Infrastructure/Plex/PlexServerApiClient.cs +++ b/ErsatzTV.Infrastructure/Plex/PlexServerApiClient.cs @@ -123,7 +123,7 @@ namespace ErsatzTV.Infrastructure.Plex PlexPartResponse part = media.Part.Head(); DateTime lastWriteTime = DateTimeOffset.FromUnixTimeSeconds(response.UpdatedAt).DateTime; - var metadata = new NewMovieMetadata + var metadata = new MovieMetadata { Title = response.Title, Plot = response.Summary, @@ -139,7 +139,7 @@ namespace ErsatzTV.Infrastructure.Plex Poster = response.Thumb, LastWriteTime = lastWriteTime, PosterLastWriteTime = lastWriteTime, - MovieMetadata = new List { metadata }, + MovieMetadata = new List { metadata }, Statistics = new MediaItemStatistics { Duration = TimeSpan.FromMilliseconds(media.Duration),