Files
ersatztv/ErsatzTV.Application/ProgramSchedules/Mapper.cs
T
2021-02-08 21:13:53 -06:00

47 lines
2.1 KiB
C#

using ErsatzTV.Core.Domain;
namespace ErsatzTV.Application.ProgramSchedules
{
internal static class Mapper
{
internal static ProgramScheduleViewModel ProjectToViewModel(ProgramSchedule programSchedule) =>
new(programSchedule.Id, programSchedule.Name, programSchedule.MediaCollectionPlaybackOrder);
internal static ProgramScheduleItemViewModel ProjectToViewModel(ProgramScheduleItem programScheduleItem) =>
programScheduleItem switch
{
ProgramScheduleItemDuration duration =>
new ProgramScheduleItemDurationViewModel(
duration.Id,
duration.Index,
duration.StartType,
duration.StartTime,
MediaCollections.Mapper.ProjectToViewModel(duration.MediaCollection),
duration.PlayoutDuration,
duration.OfflineTail),
ProgramScheduleItemFlood flood =>
new ProgramScheduleItemFloodViewModel(
flood.Id,
flood.Index,
flood.StartType,
flood.StartTime,
MediaCollections.Mapper.ProjectToViewModel(flood.MediaCollection)),
ProgramScheduleItemMultiple multiple =>
new ProgramScheduleItemMultipleViewModel(
multiple.Id,
multiple.Index,
multiple.StartType,
multiple.StartTime,
MediaCollections.Mapper.ProjectToViewModel(multiple.MediaCollection),
multiple.Count),
ProgramScheduleItemOne one =>
new ProgramScheduleItemOneViewModel(
one.Id,
one.Index,
one.StartType,
one.StartTime,
MediaCollections.Mapper.ProjectToViewModel(one.MediaCollection))
};
}
}