diff --git a/Kyoo/Controllers/Repositories/EpisodeRepository.cs b/Kyoo/Controllers/Repositories/EpisodeRepository.cs index 90977937..eddb63bd 100644 --- a/Kyoo/Controllers/Repositories/EpisodeRepository.cs +++ b/Kyoo/Controllers/Repositories/EpisodeRepository.cs @@ -71,7 +71,7 @@ namespace Kyoo.Controllers return await _database.Episodes.ToListAsync(); } - public async Task Create(Episode obj) + public async Task Create(Episode obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -109,17 +109,17 @@ namespace Kyoo.Controllers * } */ - return obj.ID; + return obj; } - public async Task CreateIfNotExists(Episode obj) + public async Task CreateIfNotExists(Episode obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); Episode old = await Get(obj.Slug); if (old != null) - return old.ID; + return old; try { return await Create(obj); @@ -129,11 +129,11 @@ namespace Kyoo.Controllers old = await Get(obj.Slug); if (old == null) throw new SystemException("Unknown database state."); - return old.ID; + return old; } } - public async Task Edit(Episode edited, bool resetOld) + public async Task Edit(Episode edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -149,6 +149,7 @@ namespace Kyoo.Controllers await Validate(old); await _database.SaveChangesAsync(); + return old; } private async Task Validate(Episode obj) @@ -159,7 +160,7 @@ namespace Kyoo.Controllers if (obj.ExternalIDs != null) { foreach (MetadataID link in obj.ExternalIDs) - link.ProviderID = await _providers.CreateIfNotExists(link.Provider); + link.Provider = await _providers.CreateIfNotExists(link.Provider); } } diff --git a/Kyoo/Controllers/Repositories/GenreRepository.cs b/Kyoo/Controllers/Repositories/GenreRepository.cs index b6ee440d..bafa9226 100644 --- a/Kyoo/Controllers/Repositories/GenreRepository.cs +++ b/Kyoo/Controllers/Repositories/GenreRepository.cs @@ -54,7 +54,7 @@ namespace Kyoo.Controllers return await _database.Genres.ToListAsync(); } - public async Task Create(Genre obj) + public async Task Create(Genre obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -74,17 +74,17 @@ namespace Kyoo.Controllers throw; } - return obj.ID; + return obj; } - public async Task CreateIfNotExists(Genre obj) + public async Task CreateIfNotExists(Genre obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); Genre old = await Get(obj.Slug); if (old != null) - return old.ID; + return old; try { return await Create(obj); @@ -94,11 +94,11 @@ namespace Kyoo.Controllers old = await Get(obj.Slug); if (old == null) throw new SystemException("Unknown database state."); - return old.ID; + return old; } } - public async Task Edit(Genre edited, bool resetOld) + public async Task Edit(Genre edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -112,6 +112,7 @@ namespace Kyoo.Controllers Utility.Nullify(old); Utility.Merge(old, edited); await _database.SaveChangesAsync(); + return old; } public async Task Delete(int id) diff --git a/Kyoo/Controllers/Repositories/LibraryRepository.cs b/Kyoo/Controllers/Repositories/LibraryRepository.cs index acd20b43..4967fa0b 100644 --- a/Kyoo/Controllers/Repositories/LibraryRepository.cs +++ b/Kyoo/Controllers/Repositories/LibraryRepository.cs @@ -56,7 +56,7 @@ namespace Kyoo.Controllers return await _database.Libraries.ToListAsync(); } - public async Task Create(Library obj) + public async Task Create(Library obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -79,17 +79,17 @@ namespace Kyoo.Controllers throw; } - return obj.ID; + return obj; } - public async Task CreateIfNotExists(Library obj) + public async Task CreateIfNotExists(Library obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); Library old = await Get(obj.Slug); if (old != null) - return old.ID; + return old; try { return await Create(obj); @@ -99,11 +99,11 @@ namespace Kyoo.Controllers old = await Get(obj.Slug); if (old == null) throw new SystemException("Unknown database state."); - return old.ID; + return old; } } - public async Task Edit(Library edited, bool resetOld) + public async Task Edit(Library edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -118,13 +118,14 @@ namespace Kyoo.Controllers Utility.Merge(old, edited); await Validate(old); await _database.SaveChangesAsync(); + return old; } private async Task Validate(Library obj) { if (obj.ProviderLinks != null) foreach (ProviderLink link in obj.ProviderLinks) - link.ProviderID = await _providers.CreateIfNotExists(link.Provider); + link.Provider = await _providers.CreateIfNotExists(link.Provider); } public async Task Delete(int id) diff --git a/Kyoo/Controllers/Repositories/PeopleRepository.cs b/Kyoo/Controllers/Repositories/PeopleRepository.cs index df5f81c6..5dad3c4c 100644 --- a/Kyoo/Controllers/Repositories/PeopleRepository.cs +++ b/Kyoo/Controllers/Repositories/PeopleRepository.cs @@ -55,7 +55,7 @@ namespace Kyoo.Controllers return await _database.Peoples.ToListAsync(); } - public async Task Create(People obj) + public async Task Create(People obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -78,17 +78,17 @@ namespace Kyoo.Controllers throw; } - return obj.ID; + return obj; } - public async Task CreateIfNotExists(People obj) + public async Task CreateIfNotExists(People obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); People old = await Get(obj.Slug); if (old != null) - return old.ID; + return old; try { return await Create(obj); @@ -98,11 +98,11 @@ namespace Kyoo.Controllers old = await Get(obj.Slug); if (old == null) throw new SystemException("Unknown database state."); - return old.ID; + return old; } } - public async Task Edit(People edited, bool resetOld) + public async Task Edit(People edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -117,13 +117,14 @@ namespace Kyoo.Controllers Utility.Merge(old, edited); await Validate(old); await _database.SaveChangesAsync(); + return old; } private async Task Validate(People obj) { if (obj.ExternalIDs != null) foreach (MetadataID link in obj.ExternalIDs) - link.ProviderID = await _providers.CreateIfNotExists(link.Provider); + link.Provider = await _providers.CreateIfNotExists(link.Provider); } public async Task Delete(int id) diff --git a/Kyoo/Controllers/Repositories/ProviderRepository.cs b/Kyoo/Controllers/Repositories/ProviderRepository.cs index 5b946139..ca82638e 100644 --- a/Kyoo/Controllers/Repositories/ProviderRepository.cs +++ b/Kyoo/Controllers/Repositories/ProviderRepository.cs @@ -54,7 +54,7 @@ namespace Kyoo.Controllers return await _database.Providers.ToListAsync(); } - public async Task Create(ProviderID obj) + public async Task Create(ProviderID obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -73,17 +73,17 @@ namespace Kyoo.Controllers throw; } - return obj.ID; + return obj; } - public async Task CreateIfNotExists(ProviderID obj) + public async Task CreateIfNotExists(ProviderID obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); ProviderID old = await Get(obj.Name); if (old != null) - return old.ID; + return old; try { return await Create(obj); @@ -93,11 +93,11 @@ namespace Kyoo.Controllers old = await Get(obj.Name); if (old == null) throw new SystemException("Unknown database state."); - return old.ID; + return old; } } - public async Task Edit(ProviderID edited, bool resetOld) + public async Task Edit(ProviderID edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -111,6 +111,7 @@ namespace Kyoo.Controllers Utility.Nullify(old); Utility.Merge(old, edited); await _database.SaveChangesAsync(); + return old; } public async Task Delete(int id) diff --git a/Kyoo/Controllers/Repositories/SeasonRepository.cs b/Kyoo/Controllers/Repositories/SeasonRepository.cs index ef78914f..61ed44b2 100644 --- a/Kyoo/Controllers/Repositories/SeasonRepository.cs +++ b/Kyoo/Controllers/Repositories/SeasonRepository.cs @@ -70,7 +70,7 @@ namespace Kyoo.Controllers return await _database.Seasons.ToListAsync(); } - public async Task Create(Season obj) + public async Task Create(Season obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -93,17 +93,17 @@ namespace Kyoo.Controllers throw; } - return obj.ID; + return obj; } - public async Task CreateIfNotExists(Season obj) + public async Task CreateIfNotExists(Season obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); Season old = await Get(obj.Slug); if (old != null) - return old.ID; + return old; try { return await Create(obj); @@ -113,11 +113,11 @@ namespace Kyoo.Controllers old = await Get(obj.Slug); if (old == null) throw new SystemException("Unknown database state."); - return old.ID; + return old; } } - public async Task Edit(Season edited, bool resetOld) + public async Task Edit(Season edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -133,6 +133,7 @@ namespace Kyoo.Controllers await Validate(old); await _database.SaveChangesAsync(); + return old; } private async Task Validate(Season obj) @@ -143,7 +144,7 @@ namespace Kyoo.Controllers if (obj.ExternalIDs != null) { foreach (MetadataID link in obj.ExternalIDs) - link.ProviderID = await _providers.CreateIfNotExists(link.Provider); + link.Provider = await _providers.CreateIfNotExists(link.Provider); } } diff --git a/Kyoo/Controllers/Repositories/ShowRepository.cs b/Kyoo/Controllers/Repositories/ShowRepository.cs index 30b961f3..36ff0c39 100644 --- a/Kyoo/Controllers/Repositories/ShowRepository.cs +++ b/Kyoo/Controllers/Repositories/ShowRepository.cs @@ -98,7 +98,7 @@ namespace Kyoo.Controllers return await query.ToListAsync(); } - public async Task Create(Show obj) + public async Task Create(Show obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -127,17 +127,17 @@ namespace Kyoo.Controllers throw; } - return obj.ID; + return obj; } - public async Task CreateIfNotExists(Show obj) + public async Task CreateIfNotExists(Show obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); Show old = await Get(obj.Slug); if (old != null) - return old.ID; + return old; try { return await Create(obj); @@ -147,11 +147,11 @@ namespace Kyoo.Controllers old = await Get(obj.Slug); if (old == null) throw new SystemException("Unknown database state."); - return old.ID; + return old; } } - public async Task Edit(Show edited, bool resetOld) + public async Task Edit(Show edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -166,24 +166,25 @@ namespace Kyoo.Controllers Utility.Merge(old, edited); await Validate(old); await _database.SaveChangesAsync(); + return old; } private async Task Validate(Show obj) { if (obj.Studio != null) - obj.StudioID = await _studios.CreateIfNotExists(obj.Studio); + obj.Studio = await _studios.CreateIfNotExists(obj.Studio); if (obj.GenreLinks != null) foreach (GenreLink link in obj.GenreLinks) - link.GenreID = await _genres.CreateIfNotExists(link.Genre); + link.Genre = await _genres.CreateIfNotExists(link.Genre); if (obj.People != null) foreach (PeopleLink link in obj.People) - link.PeopleID = await _people.CreateIfNotExists(link.People); + link.People = await _people.CreateIfNotExists(link.People); if (obj.ExternalIDs != null) foreach (MetadataID link in obj.ExternalIDs) - link.ProviderID = await _providers.CreateIfNotExists(link.Provider); + link.Provider = await _providers.CreateIfNotExists(link.Provider); } public async Task AddShowLink(int showID, int? libraryID, int? collectionID) diff --git a/Kyoo/Controllers/Repositories/StudioRepository.cs b/Kyoo/Controllers/Repositories/StudioRepository.cs index 4e7583cb..dda47a2a 100644 --- a/Kyoo/Controllers/Repositories/StudioRepository.cs +++ b/Kyoo/Controllers/Repositories/StudioRepository.cs @@ -54,7 +54,7 @@ namespace Kyoo.Controllers return await _database.Studios.ToListAsync(); } - public async Task Create(Studio obj) + public async Task Create(Studio obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -72,17 +72,17 @@ namespace Kyoo.Controllers throw new DuplicatedItemException($"Trying to insert a duplicated studio (slug {obj.Slug} already exists)."); throw; } - return obj.ID; + return obj; } - public async Task CreateIfNotExists(Studio obj) + public async Task CreateIfNotExists(Studio obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); Studio old = await Get(obj.Slug); if (old != null) - return old.ID; + return old; try { return await Create(obj); @@ -92,11 +92,11 @@ namespace Kyoo.Controllers old = await Get(obj.Slug); if (old == null) throw new SystemException("Unknown database state."); - return old.ID; + return old; } } - public async Task Edit(Studio edited, bool resetOld) + public async Task Edit(Studio edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -110,6 +110,7 @@ namespace Kyoo.Controllers Utility.Nullify(old); Utility.Merge(old, edited); await _database.SaveChangesAsync(); + return old; } public async Task Delete(int id) diff --git a/Kyoo/Controllers/Repositories/TrackRepository.cs b/Kyoo/Controllers/Repositories/TrackRepository.cs index c5731c0c..74fd4bf9 100644 --- a/Kyoo/Controllers/Repositories/TrackRepository.cs +++ b/Kyoo/Controllers/Repositories/TrackRepository.cs @@ -57,7 +57,7 @@ namespace Kyoo.Controllers return await _database.Tracks.ToListAsync(); } - public async Task Create(Track obj) + public async Task Create(Track obj) { if (obj == null) throw new ArgumentNullException(nameof(obj)); @@ -78,15 +78,15 @@ namespace Kyoo.Controllers throw new DuplicatedItemException($"Trying to insert a duplicated track (slug {obj.Slug} already exists)."); throw; } - return obj.ID; + return obj; } - public Task CreateIfNotExists(Track obj) + public Task CreateIfNotExists(Track obj) { return Create(obj); } - public async Task Edit(Track edited, bool resetOld) + public async Task Edit(Track edited, bool resetOld) { if (edited == null) throw new ArgumentNullException(nameof(edited)); @@ -100,6 +100,7 @@ namespace Kyoo.Controllers Utility.Nullify(old); Utility.Merge(old, edited); await _database.SaveChangesAsync(); + return old; } public async Task Delete(int id)