diff --git a/Kyoo.Common/Controllers/IRepository.cs b/Kyoo.Common/Controllers/IRepository.cs index cddb3805..4a691ee9 100644 --- a/Kyoo.Common/Controllers/IRepository.cs +++ b/Kyoo.Common/Controllers/IRepository.cs @@ -35,4 +35,5 @@ namespace Kyoo.Controllers public interface IGenreRepository : IRepository {} public interface IStudioRepository : IRepository {} public interface IPeopleRepository : IRepository {} + public interface IProviderRepository : IRepository {} } \ No newline at end of file diff --git a/Kyoo/Controllers/Repositories/ShowRepository.cs b/Kyoo/Controllers/Repositories/ShowRepository.cs index 2382ba04..120af32c 100644 --- a/Kyoo/Controllers/Repositories/ShowRepository.cs +++ b/Kyoo/Controllers/Repositories/ShowRepository.cs @@ -14,16 +14,19 @@ namespace Kyoo.Controllers private readonly IGenreRepository _genres; private readonly IPeopleRepository _people; private readonly IStudioRepository _studio; + private readonly IProviderRepository _providers; public ShowRepository(DatabaseContext database, IGenreRepository genres, IPeopleRepository people, - IStudioRepository studio) + IStudioRepository studio, + IProviderRepository providers) { _database = database; _genres = genres; _people = people; _studio = studio; + _providers = providers; } public Task Get(long id) @@ -52,8 +55,7 @@ namespace Kyoo.Controllers { if (obj == null) throw new ArgumentNullException(nameof(obj)); - - // TODO handle ExternalIDs. + obj.StudioID = await _studio.CreateIfNotExists(obj.Studio); obj.GenreLinks = (await Task.WhenAll(obj.GenreLinks.Select(async x => { @@ -65,6 +67,11 @@ namespace Kyoo.Controllers x.PeopleID = await _people.CreateIfNotExists(x.People); return x; }))).ToList(); + obj.ExternalIDs = (await Task.WhenAll(obj.ExternalIDs.Select(async x => + { + x.ProviderID = await _providers.CreateIfNotExists(x.Provider); + return x; + }))).ToList(); obj.Seasons = null; obj.Episodes = null;