diff --git a/Kyoo/Controllers/LibraryManager.cs b/Kyoo/Controllers/LibraryManager.cs index 726675ce..9b1a6590 100644 --- a/Kyoo/Controllers/LibraryManager.cs +++ b/Kyoo/Controllers/LibraryManager.cs @@ -43,24 +43,32 @@ namespace Kyoo.Controllers public void Dispose() { - _libraries?.Dispose(); - _collections?.Dispose(); - _shows?.Dispose(); - _seasons?.Dispose(); - _episodes?.Dispose(); - _tracks?.Dispose(); - _genres?.Dispose(); - _studios?.Dispose(); - _people?.Dispose(); - _providers?.Dispose(); + _libraries.Dispose(); + _collections.Dispose(); + _shows.Dispose(); + _seasons.Dispose(); + _episodes.Dispose(); + _tracks.Dispose(); + _genres.Dispose(); + _studios.Dispose(); + _people.Dispose(); + _providers.Dispose(); } public async ValueTask DisposeAsync() { - return ValueTask.(new [] - { - _libraries.DisposeAsync() - }); + await Task.WhenAll( + _libraries.DisposeAsync().AsTask(), + _collections.DisposeAsync().AsTask(), + _shows.DisposeAsync().AsTask(), + _seasons.DisposeAsync().AsTask(), + _episodes.DisposeAsync().AsTask(), + _tracks.DisposeAsync().AsTask(), + _genres.DisposeAsync().AsTask(), + _studios.DisposeAsync().AsTask(), + _people.DisposeAsync().AsTask(), + _providers.DisposeAsync().AsTask() + ); } public Task GetLibrary(string slug) diff --git a/Kyoo/Controllers/Repositories/CollectionRepository.cs b/Kyoo/Controllers/Repositories/CollectionRepository.cs index 69f059ce..091c2143 100644 --- a/Kyoo/Controllers/Repositories/CollectionRepository.cs +++ b/Kyoo/Controllers/Repositories/CollectionRepository.cs @@ -19,6 +19,16 @@ namespace Kyoo.Controllers _database = database; } + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } + public Task Get(int id) { return _database.Collections.FirstOrDefaultAsync(x => x.ID == id); diff --git a/Kyoo/Controllers/Repositories/EpisodeRepository.cs b/Kyoo/Controllers/Repositories/EpisodeRepository.cs index 94cc2889..a6c9b61c 100644 --- a/Kyoo/Controllers/Repositories/EpisodeRepository.cs +++ b/Kyoo/Controllers/Repositories/EpisodeRepository.cs @@ -21,6 +21,16 @@ namespace Kyoo.Controllers _serviceProvider = serviceProvider; } + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } + public async Task Get(int id) { return await _database.Episodes.FirstOrDefaultAsync(x => x.ID == id); diff --git a/Kyoo/Controllers/Repositories/GenreRepository.cs b/Kyoo/Controllers/Repositories/GenreRepository.cs index 11931c10..d9299465 100644 --- a/Kyoo/Controllers/Repositories/GenreRepository.cs +++ b/Kyoo/Controllers/Repositories/GenreRepository.cs @@ -17,6 +17,16 @@ namespace Kyoo.Controllers { _database = database; } + + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } public async Task Get(int id) { diff --git a/Kyoo/Controllers/Repositories/LibraryRepository.cs b/Kyoo/Controllers/Repositories/LibraryRepository.cs index 4df5a1d0..27715c00 100644 --- a/Kyoo/Controllers/Repositories/LibraryRepository.cs +++ b/Kyoo/Controllers/Repositories/LibraryRepository.cs @@ -20,7 +20,17 @@ namespace Kyoo.Controllers _database = database; _serviceProvider = serviceProvider; } - + + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } + public Task Get(int id) { return _database.Libraries.FirstOrDefaultAsync(x => x.ID == id); diff --git a/Kyoo/Controllers/Repositories/PeopleRepository.cs b/Kyoo/Controllers/Repositories/PeopleRepository.cs index 26bcc825..8bc73b42 100644 --- a/Kyoo/Controllers/Repositories/PeopleRepository.cs +++ b/Kyoo/Controllers/Repositories/PeopleRepository.cs @@ -19,6 +19,16 @@ namespace Kyoo.Controllers _database = database; _serviceProvider = serviceProvider; } + + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } public Task Get(int id) { diff --git a/Kyoo/Controllers/Repositories/ProviderRepository.cs b/Kyoo/Controllers/Repositories/ProviderRepository.cs index 4b304c45..1cee1d2a 100644 --- a/Kyoo/Controllers/Repositories/ProviderRepository.cs +++ b/Kyoo/Controllers/Repositories/ProviderRepository.cs @@ -18,6 +18,16 @@ namespace Kyoo.Controllers _database = database; } + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } + public async Task Get(int id) { return await _database.Providers.FirstOrDefaultAsync(x => x.ID == id); diff --git a/Kyoo/Controllers/Repositories/SeasonRepository.cs b/Kyoo/Controllers/Repositories/SeasonRepository.cs index 6e514871..73ca3ba4 100644 --- a/Kyoo/Controllers/Repositories/SeasonRepository.cs +++ b/Kyoo/Controllers/Repositories/SeasonRepository.cs @@ -21,6 +21,16 @@ namespace Kyoo.Controllers _serviceProvider = serviceProvider; } + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } + public async Task Get(int id) { return await _database.Seasons.FirstOrDefaultAsync(x => x.ID == id); diff --git a/Kyoo/Controllers/Repositories/ShowRepository.cs b/Kyoo/Controllers/Repositories/ShowRepository.cs index 8d5a6772..2d76fcfd 100644 --- a/Kyoo/Controllers/Repositories/ShowRepository.cs +++ b/Kyoo/Controllers/Repositories/ShowRepository.cs @@ -24,6 +24,17 @@ namespace Kyoo.Controllers _studios = studios; } + public void Dispose() + { + _database.Dispose(); + _studios.Dispose(); + } + + public async ValueTask DisposeAsync() + { + await Task.WhenAll(_database.DisposeAsync().AsTask(), _studios.DisposeAsync().AsTask()); + } + public async Task Get(int id) { return await _database.Shows.FirstOrDefaultAsync(x => x.ID == id); diff --git a/Kyoo/Controllers/Repositories/StudioRepository.cs b/Kyoo/Controllers/Repositories/StudioRepository.cs index 900f5b79..d8cb7b1c 100644 --- a/Kyoo/Controllers/Repositories/StudioRepository.cs +++ b/Kyoo/Controllers/Repositories/StudioRepository.cs @@ -18,6 +18,16 @@ namespace Kyoo.Controllers _database = database; } + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } + public async Task Get(int id) { return await _database.Studios.FirstOrDefaultAsync(x => x.ID == id); diff --git a/Kyoo/Controllers/Repositories/TrackRepository.cs b/Kyoo/Controllers/Repositories/TrackRepository.cs index 8ef1dd8e..199a452b 100644 --- a/Kyoo/Controllers/Repositories/TrackRepository.cs +++ b/Kyoo/Controllers/Repositories/TrackRepository.cs @@ -17,6 +17,16 @@ namespace Kyoo.Controllers _database = database; } + public void Dispose() + { + _database.Dispose(); + } + + public ValueTask DisposeAsync() + { + return _database.DisposeAsync(); + } + public async Task Get(int id) { return await _database.Tracks.FirstOrDefaultAsync(x => x.ID == id);