mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
1018 B
24 lines
1018 B
using ErsatzTV.Application.Emby; |
|
using ErsatzTV.Application.Jellyfin; |
|
using ErsatzTV.Core.Domain; |
|
|
|
namespace ErsatzTV.Application.Libraries; |
|
|
|
internal static class Mapper |
|
{ |
|
public static LibraryViewModel ProjectToViewModel(Library library) => |
|
library switch |
|
{ |
|
LocalLibrary l => ProjectToViewModel(l), |
|
PlexLibrary p => new PlexLibraryViewModel(p.Id, p.Name, p.MediaKind), |
|
JellyfinLibrary j => new JellyfinLibraryViewModel(j.Id, j.Name, j.MediaKind, j.ShouldSyncItems), |
|
EmbyLibrary e => new EmbyLibraryViewModel(e.Id, e.Name, e.MediaKind, e.ShouldSyncItems), |
|
_ => throw new ArgumentOutOfRangeException(nameof(library)) |
|
}; |
|
|
|
public static LocalLibraryViewModel ProjectToViewModel(LocalLibrary library) => |
|
new(library.Id, library.Name, library.MediaKind); |
|
|
|
public static LocalLibraryPathViewModel ProjectToViewModel(LibraryPath libraryPath) => |
|
new(libraryPath.Id, libraryPath.LibraryId, libraryPath.Path); |
|
}
|
|
|