diff --git a/ErsatzTV.Application/MediaCards/Mapper.cs b/ErsatzTV.Application/MediaCards/Mapper.cs index 486c45880..d087d3a40 100644 --- a/ErsatzTV.Application/MediaCards/Mapper.cs +++ b/ErsatzTV.Application/MediaCards/Mapper.cs @@ -9,14 +9,14 @@ namespace ErsatzTV.Application.MediaCards internal static TelevisionShowCardViewModel ProjectToViewModel(TelevisionShow televisionShow) => new( televisionShow.Id, - televisionShow.Metadata.Title, - televisionShow.Metadata.Year.ToString(), - televisionShow.Metadata.SortTitle, + televisionShow.Metadata?.Title, + televisionShow.Metadata?.Year.ToString(), + televisionShow.Metadata?.SortTitle, televisionShow.Poster); internal static TelevisionSeasonCardViewModel ProjectToViewModel(TelevisionSeason televisionSeason) => new( - televisionSeason.TelevisionShow.Metadata.Title, + televisionSeason.TelevisionShow.Metadata?.Title, televisionSeason.Id, televisionSeason.Number, GetSeasonName(televisionSeason.Number), @@ -29,13 +29,13 @@ namespace ErsatzTV.Application.MediaCards TelevisionEpisodeMediaItem televisionEpisode) => new( televisionEpisode.Id, - televisionEpisode.Metadata.Aired ?? DateTime.MinValue, + televisionEpisode.Metadata?.Aired ?? DateTime.MinValue, televisionEpisode.Season.TelevisionShow.Metadata.Title, - televisionEpisode.Metadata.Title, - $"Episode {televisionEpisode.Metadata.Episode}", - televisionEpisode.Metadata.Episode.ToString(), + televisionEpisode.Metadata?.Title, + $"Episode {televisionEpisode.Metadata?.Episode}", + televisionEpisode.Metadata?.Episode.ToString(), televisionEpisode.Poster, - televisionEpisode.Metadata.Episode.ToString()); + televisionEpisode.Metadata?.Episode.ToString()); internal static MovieCardViewModel ProjectToViewModel(MovieMediaItem movie) => new( diff --git a/ErsatzTV.Core/Metadata/LocalMetadataProvider.cs b/ErsatzTV.Core/Metadata/LocalMetadataProvider.cs index 1b690a09c..8a291d2ab 100644 --- a/ErsatzTV.Core/Metadata/LocalMetadataProvider.cs +++ b/ErsatzTV.Core/Metadata/LocalMetadataProvider.cs @@ -138,7 +138,7 @@ namespace ErsatzTV.Core.Metadata return None; } - return await LoadMovieMetadata(nfoFileName); + return await LoadMovieMetadata(mediaItem, nfoFileName); } private async Task> LoadMetadata( @@ -157,7 +157,7 @@ namespace ErsatzTV.Core.Metadata return None; } - return await LoadEpisodeMetadata(nfoFileName); + return await LoadEpisodeMetadata(mediaItem, nfoFileName); } private async Task> LoadMetadata( @@ -197,7 +197,7 @@ namespace ErsatzTV.Core.Metadata } } - private async Task> LoadEpisodeMetadata(string nfoFileName) + private async Task> LoadEpisodeMetadata(TelevisionEpisodeMediaItem mediaItem, string nfoFileName) { try { @@ -219,11 +219,11 @@ namespace ErsatzTV.Core.Metadata catch (Exception ex) { _logger.LogDebug(ex, "Failed to read TV episode nfo metadata from {Path}", nfoFileName); - return None; + return FallbackMetadataProvider.GetFallbackMetadata(mediaItem); } } - private async Task> LoadMovieMetadata(string nfoFileName) + private async Task> LoadMovieMetadata(MovieMediaItem mediaItem, string nfoFileName) { try { @@ -247,7 +247,7 @@ namespace ErsatzTV.Core.Metadata catch (Exception ex) { _logger.LogDebug(ex, "Failed to read Movie nfo metadata from {Path}", nfoFileName); - return None; + return FallbackMetadataProvider.GetFallbackMetadata(mediaItem); } }