23 lines
811 B
C#
23 lines
811 B
C#
using System.Linq;
|
|
using ErsatzTV.Core.Domain;
|
|
using static LanguageExt.Prelude;
|
|
|
|
namespace ErsatzTV.Application.MediaSources
|
|
{
|
|
internal static class Mapper
|
|
{
|
|
internal static MediaSourceViewModel ProjectToViewModel(MediaSource mediaSource) =>
|
|
mediaSource switch
|
|
{
|
|
LocalMediaSource lms => new LocalMediaSourceViewModel(lms.Id, lms.Name, lms.Folder),
|
|
PlexMediaSource pms => ProjectToViewModel(pms)
|
|
};
|
|
|
|
internal static PlexMediaSourceViewModel ProjectToViewModel(PlexMediaSource plexMediaSource) =>
|
|
new(
|
|
plexMediaSource.Id,
|
|
plexMediaSource.Name,
|
|
Optional(plexMediaSource.Connections.SingleOrDefault(c => c.IsActive)).Match(c => c.Uri, string.Empty));
|
|
}
|
|
}
|