diff --git a/Kyoo.Common/Controllers/ILibraryManager.cs b/Kyoo.Common/Controllers/ILibraryManager.cs index f6d746c3..30129de8 100644 --- a/Kyoo.Common/Controllers/ILibraryManager.cs +++ b/Kyoo.Common/Controllers/ILibraryManager.cs @@ -63,11 +63,11 @@ namespace Kyoo.Controllers Task Load([NotNull] T obj, [CanBeNull] Expression> member) where T : class, IResource - where T2 : class, IResource; + where T2 : class, IResource, new(); Task Load([NotNull] T obj, [CanBeNull] Expression>> member) where T : class, IResource - where T2 : class; + where T2 : class, new(); // Library Items relations Task> GetItemsFromLibrary(int id, diff --git a/Kyoo.Common/Controllers/Implementations/LibraryManager.cs b/Kyoo.Common/Controllers/Implementations/LibraryManager.cs index 1c3b7543..d239f401 100644 --- a/Kyoo.Common/Controllers/Implementations/LibraryManager.cs +++ b/Kyoo.Common/Controllers/Implementations/LibraryManager.cs @@ -21,7 +21,7 @@ namespace Kyoo.Controllers public IPeopleRepository PeopleRepository { get; } public IProviderRepository ProviderRepository { get; } - protected LibraryManager(ILibraryRepository libraryRepository, + public LibraryManager(ILibraryRepository libraryRepository, ILibraryItemRepository libraryItemRepository, ICollectionRepository collectionRepository, IShowRepository showRepository, @@ -238,9 +238,9 @@ namespace Kyoo.Controllers public Task Load(T obj, Expression> member) where T : class, IResource - where T2 : class, IResource + where T2 : class, IResource, new() { - return (obj, (T2)default) switch + return (obj, new T2()) switch { (Show s, Studio) => StudioRepository.Get(x => x.Shows.Any(Utility.ResourceEqualsFunc(obj))) .Then(x => s.Studio = x), @@ -260,9 +260,9 @@ namespace Kyoo.Controllers public Task Load(T obj, Expression>> member) where T : class, IResource - where T2 : class + where T2 : class, new() { - return (obj, (T2)default) switch + return (obj, new T2()) switch { (Library l, ProviderID) => ProviderRepository.GetAll(Utility.ResourceEquals(obj)) .Then(x => l.Providers = x),