From fc33c5cd054357a67ceb7dc904b930539e0a7e2f Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Tue, 30 Mar 2021 16:23:02 -0500 Subject: [PATCH] add show title to playout details (#120) --- ErsatzTV.Application/Playouts/Mapper.cs | 23 ++++++++++++------- .../Data/Repositories/PlayoutRepository.cs | 3 +++ ErsatzTV/Shared/MainLayout.razor | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ErsatzTV.Application/Playouts/Mapper.cs b/ErsatzTV.Application/Playouts/Mapper.cs index c2c9b20ee..6a7eea1d4 100644 --- a/ErsatzTV.Application/Playouts/Mapper.cs +++ b/ErsatzTV.Application/Playouts/Mapper.cs @@ -24,15 +24,22 @@ namespace ErsatzTV.Application.Playouts private static PlayoutProgramScheduleViewModel Project(ProgramSchedule programSchedule) => new(programSchedule.Id, programSchedule.Name); - private static string GetDisplayTitle(MediaItem mediaItem) => - mediaItem switch + private static string GetDisplayTitle(MediaItem mediaItem) + { + switch (mediaItem) { - Episode e => e.EpisodeMetadata.HeadOrNone() - .Map(em => $"{em.Title} - s{e.Season.SeasonNumber:00}e{e.EpisodeNumber:00}") - .IfNone("[unknown episode]"), - Movie m => m.MovieMetadata.HeadOrNone().Map(mm => mm.Title).IfNone("[unknown movie]"), - _ => string.Empty - }; + case Episode e: + string showTitle = e.Season.Show.ShowMetadata.HeadOrNone() + .Map(sm => $"{sm.Title} - ").IfNone(string.Empty); + return e.EpisodeMetadata.HeadOrNone() + .Map(em => $"{showTitle}s{e.Season.SeasonNumber:00}e{e.EpisodeNumber:00} - {em.Title}") + .IfNone("[unknown episode]"); + case Movie m: + return m.MovieMetadata.HeadOrNone().Map(mm => mm.Title).IfNone("[unknown movie]"); + default: + return string.Empty; + } + } private static string GetDisplayDuration(MediaItem mediaItem) { diff --git a/ErsatzTV.Infrastructure/Data/Repositories/PlayoutRepository.cs b/ErsatzTV.Infrastructure/Data/Repositories/PlayoutRepository.cs index 2783742d2..eb28c3866 100644 --- a/ErsatzTV.Infrastructure/Data/Repositories/PlayoutRepository.cs +++ b/ErsatzTV.Infrastructure/Data/Repositories/PlayoutRepository.cs @@ -96,6 +96,9 @@ namespace ErsatzTV.Infrastructure.Data.Repositories .Include(i => i.MediaItem) .ThenInclude(mi => (mi as Episode).Season) .ThenInclude(s => s.SeasonMetadata) + .Include(i => i.MediaItem) + .ThenInclude(mi => (mi as Episode).Season.Show) + .ThenInclude(s => s.ShowMetadata) .Filter(i => i.PlayoutId == playoutId) .ToListAsync(); } diff --git a/ErsatzTV/Shared/MainLayout.razor b/ErsatzTV/Shared/MainLayout.razor index 30da4ad7b..6775e61a7 100644 --- a/ErsatzTV/Shared/MainLayout.razor +++ b/ErsatzTV/Shared/MainLayout.razor @@ -85,6 +85,7 @@ TextSecondary = "rgba(255,255,255, 0.80)", TextDisabled = "rgba(255,255,255, 0.40)", ActionDisabled = "rgba(255,255,255, 0.40)", + TableHover = "rgba(255,255,255, 0.10)", Info = "#00c0c0", Tertiary = "#00c000", White = Colors.Shades.White