* refactor create playout handler * refactor get all playouts handler * refactor delete playout handler * remove dead code * ignore unnamed artists for collections * more repository cleanup * more schedule items refactoring * more playout refactoring * refactor playout builder * refactor ffmpeg profiles * more ffmpeg profile refactoring * rework resolutions * refactor media collections * refactor config elements * update changelog * more cleanup
23 lines
964 B
C#
23 lines
964 B
C#
using ErsatzTV.Core.Domain;
|
|
|
|
namespace ErsatzTV.Application.MediaItems
|
|
{
|
|
internal static class Mapper
|
|
{
|
|
internal static NamedMediaItemViewModel ProjectToViewModel(Show show) =>
|
|
new(show.Id, show.ShowMetadata.HeadOrNone().Map(sm => $"{sm?.Title} ({sm?.Year})").IfNone("???"));
|
|
|
|
internal static NamedMediaItemViewModel ProjectToViewModel(Season season) =>
|
|
new(season.Id, $"{ShowTitle(season)} ({SeasonDescription(season)})");
|
|
|
|
internal static NamedMediaItemViewModel ProjectToViewModel(Artist artist) =>
|
|
new(artist.Id, artist.ArtistMetadata.HeadOrNone().Match(am => am.Title, () => "???"));
|
|
|
|
private static string ShowTitle(Season season) =>
|
|
season.Show.ShowMetadata.HeadOrNone().Map(sm => sm.Title).IfNone("???");
|
|
|
|
private static string SeasonDescription(Season season) =>
|
|
season.SeasonNumber == 0 ? "Specials" : $"Season {season.SeasonNumber}";
|
|
}
|
|
}
|