47 lines
2.1 KiB
C#
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))
|
|
};
|
|
}
|
|
}
|